/* ==========================================================================
   Concept C: Boutique Warmth - shared reference stylesheet
   RAINMAKER Wealth Innovation

   Extracted verbatim from the three verified, working section files:
     header.html · hero.html · footer.html
   Those files are NOT modified and do NOT link this stylesheet - each keeps
   its own inline <style> block exactly as shipped. This file exists so that
   NEW pages in this concept can `<link>` it instead of re-duplicating the
   tokens and component patterns below, which currently appear byte-identical
   (or near-identical) in two or more of the three real files.

   Anything that appeared in only ONE of the three files (e.g. .btn-primary,
   .skip-link, [aria-current="page"], .logo-link, the pill-button focus
   refinement) is a real, working pattern but is NOT "shared" by the strict
   definition of this extraction, so it is intentionally left out here.
   ========================================================================== */

/* ---------- design tokens ----------
   Identical :root block in header.html, hero.html, footer.html. */
:root{
  --espresso:      #221A14; /* page ground */
  --espresso-deep: #1A130E; /* vignette edge */
  --umber-panel:   #2E241B; /* raised surfaces */
  --bone:          #F5EDE1; /* primary text / card */
  --parchment:     #EFE3D0; /* card body */
  --taupe:         #B3A490; /* secondary text */
  --copper:        #C0754D; /* accent */
  --peach:         #E5A87C; /* light accent, rules + eyebrow */
  --rust:          #A9502C; /* CTA */
  --rust-hover:    #8F4022;
  /* dusk blue - the one real blue a visitor actually meets on the live site:
     the contact form's focus-ring border (#467ee7). Honest provenance: it is
     a Duda platform default, not a curated brand color - but it is genuinely
     on her site, so it earns a small, deliberate role here. It also happens
     to match the blue-hour windows in the hero photo, which is why it can sit
     against the espresso/copper ground without fighting it. Used sparingly:
     secondary CTA, a hairline on the portrait frame, and focus states (the
     exact job it does on the live site). Never on the primary CTA or ground. */
  --dusk:          #467EE7;
  --dusk-soft:     #7DA5EE; /* lightened dusk for hover text on dark ground */
}

/* ---------- reset + base ----------
   Identical in all three files. (footer.html additionally sets
   min-height:100vh + flex column/justify-end on body, but that is a
   standalone-preview-only convenience, not a shared component rule, so
   it is intentionally left out of this shared base.) */
*{margin:0;padding:0;box-sizing:border-box;}
html{font-size:16px;}
body{
  font-family:"Bricolage Grotesque",system-ui,sans-serif;
  background:var(--espresso);
  color:var(--bone);
  -webkit-font-smoothing:antialiased;
}

/* ---------- focus state ----------
   Identical in all three files: dusk does here exactly what it does on the
   live site - focus. */
a:focus-visible{
  outline:2px solid var(--dusk);
  outline-offset:3px;
  border-radius:2px;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;}
}

/* ---------- component: nav links ----------
   Identical declarations under .nav-group a (header.html) and
   .footer-nav a (footer.html). header.html additionally styles
   .nav-group a[aria-current="page"] - that variant is header-only and is
   not duplicated, so it is not included here. */
.nav-group a,
.footer-nav a{
  color:var(--taupe);text-decoration:none;
  font-size:.8rem;font-weight:500;line-height:1.2;
  letter-spacing:.13em;text-transform:uppercase;
  padding:.6rem .2rem;
  transition:color .18s ease;
}
/* Touch targets. The audit measured footer links at 28-35px tall on phone and
   tablet, under the 44px minimum, which makes them genuinely hard to hit.
   Applied only at touch widths so the desktop rhythm is untouched. */
@media (max-width:834px){
  .footer-nav a,
  .contact-row a,
  .utility a,
  .footer-bottom a,
  .site-disclaimer a,
  .ledger-go,
  .sl-go,
  .btn-secondary,
  .dre-link,
  .crosslinks a,
  .faq summary{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .footer-nav a{ padding-inline:.5rem; }
  /* hero scroll cue measured 35px on tablet - the last sub-44px target */
  .scroll-cue{ min-height:44px;display:inline-flex;align-items:center;gap:.4rem; }
  .crosslinks a{ display:flex;flex-direction:column;justify-content:center; }
  .faq summary{ display:flex; }
  /* contact list links ("Call (415) ...", the email) measured 19px tall */
  .mini-ledger a,
  .ledger-body a,
  .sheet a{ min-height:44px;display:inline-flex;align-items:center; }
}
.nav-group a:hover,
.footer-nav a:hover{color:var(--peach);}

/* ---------- component: contact / utility links ----------
   Near-identical: .utility a (header.html) vs .contact-row a (footer.html).
   Shared: color, text-decoration, letter-spacing, transition, hover color,
   and the .phone modifier. line-height, padding, and .phone's font-size
   differ slightly between the two real files (header: line-height:1.2,
   padding:.5rem .1rem; footer: line-height:1.3, padding:.35rem .15rem,
   .phone font-size:1.05rem) - set those per instance on new pages. */
.utility a,
.contact-row a{
  color:var(--taupe);text-decoration:none;letter-spacing:.02em;
  transition:color .18s ease;
}
/* Real touch height on the utility strip. This existed ONLY in index.html's
   inline CSS, which is why the homepage header measured 214px while all ten
   other pages measured 199px - the operator spotted the difference. Promoted
   here so the chrome is identical sitewide; the strip's visual weight is
   unchanged (.4rem strip + .5rem link = the original .85rem). */
.utility a{ padding:.5rem .1rem;line-height:1.2; }
.utility a:hover,
.contact-row a:hover{color:var(--peach);}
.utility a.phone,
.contact-row a.phone{color:var(--peach);font-weight:600;}

/* ---------- component: credential dot-list marker ----------
   Byte-identical span + ::before dot marker shared by hero.html's
   .cred-line and footer.html's .creds. The container rules themselves
   (gap, font-size, margin-top, max-width, animation) differ per file and
   each appears only once, so only the shared marker mechanics are
   extracted here - set your own container class's layout on new pages. */
.cred-line span,
.creds span{
  display:inline-flex;align-items:center;gap:.45rem;
}
.cred-line span::before,
.creds span::before{
  content:"";width:.32rem;height:.32rem;border-radius:50%;
  background:var(--copper);flex:none;
}

/* ---------- component: secondary dusk-underline link/CTA ----------
   Near-identical: .btn-secondary (hero.html) vs .to-top (footer.html) -
   footer.html's own comment calls it "same grammar as the hero's secondary
   CTA". Shared: color, text-decoration, font-weight, border-bottom,
   transition, hover state. font-size and padding differ per file (hero:
   font-size:.95rem, padding:.45rem .1rem .3rem; footer: font-size:.78rem,
   padding:.4rem .1rem .25rem) - set those per instance on new pages. */
.btn-secondary,
.to-top{
  color:var(--bone);text-decoration:none;
  font-weight:500;line-height:1.3;
  border-bottom:1px solid var(--dusk);
  transition:color .18s ease,border-color .18s ease;
}
.btn-secondary:hover,
.to-top:hover{color:var(--dusk-soft);border-color:var(--dusk-soft);}

/* ==========================================================================
   2026-07-26 - compliance sweep additions
   Added when the client supplied a formal Website Content Master Document
   (see ../content/website-content-master.md). These are deliberately
   self-contained: they do not depend on any per-page inline container rule,
   so a page only has to add markup, never local CSS.
   ========================================================================== */

/* ---------- site footer ----------
   Same story as the header: these lived only as inline CSS on the four
   original pages, so generated pages rendered an unstyled footer. The
   unconstrained .footer-logo (a 561px source image) was forcing horizontal
   scroll at 390px on every new page. Values lifted verbatim from the working
   originals. */
.site-footer{
  background:
    radial-gradient(60% 90% at 50% 0%, rgba(192,117,77,.07) 0%, rgba(192,117,77,0) 70%),
    var(--espresso-deep);
  border-top:1px solid rgba(245,237,225,.09);
}
.footer-inner{
  max-width:52rem;margin:0 auto;
  padding:clamp(3rem,7vh,4.5rem) clamp(1.25rem,4.5vw,4rem) clamp(2.4rem,5vh,3.2rem);
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.footer-logo{
  width:clamp(6rem,8vw,7.25rem);height:auto;
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));
}
.site-footer .closing{
  margin-top:1.7rem;
  font-size:clamp(1rem,1.3vw,1.12rem);font-weight:300;line-height:1.65;
  color:var(--taupe);max-width:42ch;
}
.contact-row{
  margin-top:1.45rem;
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:.2rem 1.1rem;font-size:.95rem;
}
.service-area{
  margin-top:.4rem;
  font-size:.8rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;line-height:1.75;
  color:var(--peach);
}
.footer-nav{
  margin-top:1.55rem;
  display:flex;flex-wrap:wrap;justify-content:center;gap:.1rem 1.5rem;
}
.site-footer .rule{
  border:none;width:2.6rem;height:1px;
  background:var(--copper);margin:1.7rem auto 1.9rem;
}
.creds{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:.55rem 1.3rem;
  font-size:.78rem;letter-spacing:.06em;line-height:1.6;
  color:var(--taupe);max-width:46rem;
}
.footer-bottom{
  border-top:1px solid rgba(245,237,225,.09);
  padding:1.15rem clamp(1.25rem,4.5vw,4rem);
  display:flex;align-items:center;justify-content:space-between;
  gap:.8rem 1.5rem;
  font-size:.78rem;letter-spacing:.03em;color:var(--taupe);
}
@media (max-width:640px){
  .footer-bottom{
    flex-direction:column;justify-content:center;text-align:center;
    gap:.45rem;padding-top:1.4rem;padding-bottom:1.5rem;
  }
  .creds{ flex-direction:column;align-items:flex-start;gap:.5rem;text-align:left; }
  .creds-also{ align-items:flex-start; }
}

/* ---------- component: general website disclaimer ----------
   The client's own approved disclaimer text, required in the footer of EVERY
   page. Before this, the site carried no disclaimer of any kind on any page.
   Set quiet on purpose: it must be present and legible, not shouted. */
.site-disclaimer{
  background:var(--espresso-deep);
  border-top:1px solid rgba(192,117,77,.26);
  padding:1.75rem 1.25rem 1.5rem;
}
.site-disclaimer p{
  max-width:56ch;
  margin:0 auto;
  color:var(--taupe);
  font-size:.72rem;
  line-height:1.7;
  letter-spacing:.005em;
  text-align:center;
  text-wrap:pretty;
}
.site-disclaimer p + p{margin-top:.7rem;}
.site-disclaimer .legal-lede{
  color:var(--bone);
  font-weight:600;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-size:.62rem;
  margin-bottom:.55rem;
}

/* ---------- component: two-tier credential rows ----------
   Tier 1 (.creds) = regulator-issued licences only, and keeps the existing
   copper dot marker. Tier 2 (.creds-also) = self-described roles and
   background, visually subordinate. Previously every item sat in one flat
   row at identical weight, which read a teaching role and a broker
   affiliation as though they were state licences. */
.creds-also{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.35rem 1.15rem;
  margin-top:.55rem;
  font-size:.7rem;
  line-height:1.5;
  color:var(--taupe);
  opacity:.82;
}
.creds-also span{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.creds-also span::before{
  content:"";
  width:.22rem;height:.22rem;
  border-radius:50%;
  background:var(--taupe);
  flex:none;
}

/* ---------- component: partner attribution line ----------
   For the real-estate service line: the advisory is Monica's own, under her
   verified CA DRE licence; the acquisition/pipeline side is Omnikom's.
   Rendered in RWI's palette on purpose - Omnikom's own accent is lime
   (#A8D41A), which fights copper on an espresso ground.

   CONTRAST NOTE (fixed 2026-07-26 after looking at the rendered pixels, not the
   markup): this note lives on the LIGHT parchment service card (--parchment
   #EFE3D0), not on the dark ground. The first version used --taupe/--peach,
   which are tuned for the espresso ground, and measured 1.93:1 and 1.62:1
   against parchment - both far below the 4.5:1 floor and visibly washed out.
   The values below are measured against #EFE3D0: 6.0:1 and 5.7:1. If this
   component is ever reused on the dark ground, it needs a separate modifier -
   do not just swap the token back. */
.partner-note{
  margin-top:.85rem;
  padding-top:.7rem;
  border-top:1px solid rgba(34,26,20,.16);
  font-size:.74rem;
  line-height:1.6;
  color:rgba(34,26,20,.74);
}
.partner-note .partner-name{
  color:var(--rust-hover);
  font-weight:700;
  letter-spacing:.02em;
}

/* ==========================================================================
   2026-07-26 - SHARED PAGE SYSTEM for the multi-route rebuild
   ==========================================================================
   The four original pages each carry their own inline <style> block and keep
   it: an inline <style> comes after this <link>, so a page's own rule always
   wins. Nothing below overrides existing pages. These exist so NEW pages
   (about, contact, disclosures, the service pages) need no inline CSS at all.

   Every colour pair below was chosen against a MEASURED contrast value from
   the pass-1 pixel probe, not from a CSS-walk checker (which produced 12/12
   false positives on this site). Reference measurements on real pixels:
     --taupe   on --espresso-deep .......... 7.55:1
     --taupe   on --espresso ............... 7.48:1
     ink #33261B on --parchment ........... 12.08:1
     rgba(34,26,20,.74) on --parchment ..... 5.07:1
     --rust-hover on --parchment ........... 5.87:1
   ========================================================================== */

/* ---------- site header ----------
   Added 2026-07-26. These existed ONLY as inline CSS on the four original
   pages, so every newly generated page rendered without them. Three real
   defects resulted, all caught by the render gate at 390px:
     1. .logo-link img was unconstrained, so the 561px-wide source image forced
        horizontal scroll on every new page at mobile width.
     2. .skip-link was unstyled, so instead of hiding until keyboard focus it
        rendered as a visible link at the top-left of every new page.
     3. .site-disclaimer a had no colour, so it fell back to the UA default
        blue on a near-black ground (1.95:1, effectively unreadable).
   Values below are lifted verbatim from the working original pages. */
.site-header{
  position:relative;
  background:var(--espresso);
  border-bottom:1px solid rgba(245,237,225,.09);
}
.utility{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:.4rem clamp(1.25rem,4.5vw,4rem);
  border-bottom:1px solid rgba(245,237,225,.09);
  font-size:.85rem;
}
.masthead{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:clamp(1.2rem,2.5vw,2.5rem);
  padding:1.1rem clamp(1.25rem,4.5vw,4rem) 1.25rem;
  /* faint warm halo rising behind the centered emblem */
  background:radial-gradient(46% 130% at 50% 0%, rgba(192,117,77,.09) 0%, rgba(192,117,77,0) 72%);
}
.logo-link{ display:block;line-height:0;transition:transform .25s ease; }
.logo-link img{
  width:clamp(6.5rem,9vw,8rem);
  height:auto;
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));
}
.nav-group{
  display:flex;align-items:center;gap:clamp(1rem,2.2vw,2rem);
  white-space:nowrap;
}
/* Nav groups pull IN toward the centred emblem rather than being flung to the
   viewport edges. This treatment existed only in index.html's inline CSS, so
   the homepage nav sat clustered around the logo while all ten other pages
   pushed theirs to the extreme left and right with a large dead gap between -
   "Home" started at x=556 on the homepage and x=64 everywhere else, a 492px
   difference. The homepage version is the better composition, so it wins and
   moves here. Heights matched at 214px throughout, which is exactly why a
   height comparison did not catch this. */
.nav-group.left{ justify-self:end; }
.nav-group.right{ justify-self:start;justify-content:flex-end; }

/* Active item: copper underline, not just a colour shift. Also homepage-only
   until now. `.active` is carried alongside aria-current by the older pages. */
.nav-group a.active,
.nav-group a[aria-current="page"]{
  color:var(--bone);
  text-decoration:underline;
  text-decoration-color:var(--copper);
  text-decoration-thickness:1px;
  text-underline-offset:.5em;
}

@media (max-width:640px){
  .utility{
    justify-content:center;flex-wrap:wrap;
    gap:0 1.1rem;padding-top:.3rem;padding-bottom:.3rem;
  }
  .masthead{
    display:flex;flex-wrap:wrap;
    justify-content:center;align-items:center;
    gap:.15rem 1.1rem;
    padding-top:1.5rem;padding-bottom:1rem;
  }
  .logo-link{ flex:0 0 100%;order:-1;text-align:center;margin-bottom:.7rem; }
  .logo-link img{ width:6.5rem; }
  .nav-group{ display:contents; }
}

/* skip link: off-screen until it takes keyboard focus */
.skip-link{
  position:absolute;top:.6rem;left:.6rem;z-index:10;
  background:var(--espresso-deep);color:var(--bone);
  font-size:.85rem;font-weight:500;letter-spacing:.03em;
  padding:.55rem 1rem;border-radius:.4rem;
  text-decoration:none;
  transform:translateY(-300%);
  transition:transform .18s ease;
}
.skip-link:focus-visible{ transform:translateY(0); }

/* links inside the disclaimer band must never fall back to UA blue */
.site-disclaimer a{
  color:var(--peach);
  text-decoration:underline;
  text-underline-offset:2px;
  transition:color .18s ease;
}
.site-disclaimer a:hover{ color:var(--bone); }

/* ---------- layout primitives ----------
   REVISED 2026-07-26 after a measured layout audit. The original 72rem
   container left content filling only 54-61% of every band at 1440px, all of
   it stacked hard left, so roughly 45% of each band was dead space on the
   right. Mobile measured fine (90% fill, 43ch) - this was desktop-only.
   Container tightened to 66rem so a comfortable 66ch measure fills it
   properly, rather than swimming inside it. */
.wrap{
  /* 56rem, not 66-72. The real defect was not the text measure - it was that
     a ~66ch column sat LEFT-ALIGNED inside a 72rem centred container, so the
     left margin was small and the right margin was enormous. Asymmetric
     whitespace is what reads as "unfinished"; the measure itself was fine.
     At 56rem the column fills its container and the remaining space becomes
     symmetric page margin, which reads as deliberate. */
  /* Grows on large screens. A fixed 56rem fixed the stranding problem at 1440
     (62% fill) but left only 47% fill at 1920, so inner pages read visibly
     narrower than the redesigned homepage sections, which run to 84rem. The
     clamp holds 56rem as a floor and opens up on wide displays; prose inside
     stays measure-capped, so the container widening lands on the sheets,
     ledgers and card grids rather than on line length. */
  /* Cycle 2 / D1 (owner: "too much empty space on the sides"). The 62vw/76rem
     axis still left ~365px gutters at 1920 (43% of the screen empty) and 272px
     at 1440. Opened to 82vw with an 80rem (1280px) ceiling: gutters land at
     ~130px @1440 and ~320px @1920, and stop growing past ~1560px so ultrawide
     does not balloon. Floor 56rem is unchanged, so tablet/mobile is untouched.
     Prose is still ch-capped per element, so the extra width lands on grids,
     sheets, ledgers and rules - never on line length. */
  max-width:clamp(56rem, 82vw, 80rem);
  margin:0 auto;
  padding-inline:clamp(1.25rem,4.5vw,3rem);
  width:100%;
  position:relative;
  z-index:1;
}
/* Wider container for bands whose content is a grid of cards, not prose. Must
   stay WIDER than standard .wrap (it was 72rem, narrower than .wrap's new 80rem
   cap - a latent bug). 84rem is the sanctioned wide axis the homepage sections
   already run to. */
.wrap-wide{ max-width:clamp(56rem, 88vw, 84rem); }

.band{ padding-block:clamp(3.25rem,7vw,5.5rem); }
.band + .band{ border-top:1px solid rgba(192,117,77,.14); }
.band-alt{ background:var(--espresso-deep); }
/* the shared process partial is a <section class="process">, not a .band, so
   it inherited NO vertical padding and collided with its neighbours. */
.process{ padding-block:clamp(3.25rem,7vw,5.5rem); }
.process + .band, .band + .process{ border-top:1px solid rgba(192,117,77,.14); }

/* ---------- type scale ---------- */
/* Eyebrow with a drawn copper rule running off it - the same register mark the
   homepage sections use, so an inner-page band opens the way a homepage band
   does instead of starting with a bare line of small caps. */
.eyebrow{
  display:flex;align-items:center;gap:.85rem;
  font-size:.72rem;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;
  color:var(--peach);
  margin-bottom:1.25rem;
}
.eyebrow::after{
  content:"";flex:1 1 auto;height:1px;max-width:11rem;
  background:linear-gradient(90deg,var(--copper),rgba(192,117,77,0));
}
.sheet .eyebrow{ color:var(--rust-hover); }
.sheet .eyebrow::after{
  background:linear-gradient(90deg,rgba(143,64,34,.55),rgba(143,64,34,0));
}
/* h1 - added 2026-07-26 after every one of the nine new pages independently
   hand-patched the same gap. The original shared system sized `.band h2` but
   carried no h1 rule at all, so an unstyled page h1 fell back to the UA default
   and rendered SMALLER than the h2s beneath it. Nine pages each invented their
   own selector (.svc-hero h1, #main h1, .page-h1, .band h1 ...) and each left a
   note asking for it to be centralised. Values below are the consensus of those
   nine: they had independently converged to within 0.1rem.
   max-width stays overridable per page - headline length genuinely varies. */
.band h1,
main h1,
.page-h1{
  font-size:clamp(2.05rem,4.4vw,3.3rem);
  font-weight:600;
  line-height:1.09;
  letter-spacing:-.018em;
  max-width:20ch;
  text-wrap:balance;
}

.band h2{
  font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:600;line-height:1.16;letter-spacing:-.012em;
  max-width:26ch;
  text-wrap:balance;
}
.band h3{ font-size:1.05rem;font-weight:600;line-height:1.3;letter-spacing:-.005em; }
/* MEASURE CAPS - recalibrated 2026-07-26 after the visual audit measured real
   glyph advance instead of trusting the unit. CSS `ch` is the width of the "0"
   glyph, and in Bricolage Grotesque "0" is about 37% wider than the average
   lowercase character. So an apparently sane `max-width:68ch` was rendering
   ~93 actual characters per line, well past the 45-75 readable band. Every cap
   below is set so the RENDERED line lands near 65 characters:
       target real chars / 1.37 = the ch value to write.
   Do not "tidy" these back up to rounder numbers without re-measuring. */
.lede{
  margin-top:1.1rem;max-width:48ch;
  color:var(--taupe);font-size:1.05rem;line-height:1.75;
  text-wrap:pretty;
}
/* Cap the TEXT, never the row. Capping the <li> capped its border-top too, so
   every ruled line stopped dead at 57% of the column and hung in mid-air. The
   rule must span the full column the way a real ledger rule does; only the
   words inside it are measure-limited. */
.mini-ledger li{ max-width:none; }
.mini-ledger li > *:not(.tick){ max-width:52ch; }
.considerations p{ max-width:52ch; }

/* ---------- parchment sheet: the base "document on a desk" surface ---------- */
/* ---------- .sheet: the real paper surface ----------
   UPGRADED 2026-07-26. Previously a flat --parchment rectangle with one soft
   shadow, which read as a grey card rather than a document. This is the exact
   paper recipe from the homepage's winning ledger variant, promoted into the
   shared system so every inner page inherits the same craft instead of each
   diverging. Four stacked layers: raking light from the top-left, a laid-paper
   texture, a warm body gradient, and a real grain overlay - plus a three-stage
   shadow (contact, mid, deep) so the sheet lifts off the desk. */
.sheet{
  position:relative;
  color:#33261B;
  border-radius:3px;
  padding:clamp(1.5rem,3.5vw,2.9rem);
  margin-top:1.9rem;
  background:
    radial-gradient(130% 70% at 8% 0%, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 58%),
    repeating-linear-gradient(96deg, rgba(34,26,20,.017) 0 2px, rgba(34,26,20,0) 2px 6px),
    linear-gradient(168deg,#F7EFE1 0%,#EFE3D0 44%,#E6D7BF 100%);
  box-shadow:
    0 1px 2px rgba(0,0,0,.28),
    0 26px 56px -24px rgba(0,0,0,.72),
    0 64px 120px -62px rgba(0,0,0,.6);
}
.sheet::before{
  content:"";position:absolute;inset:0;border-radius:3px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;opacity:.05;pointer-events:none;
}
.sheet > *{ position:relative;z-index:1; }
.sheet p{ color:rgba(34,26,20,.82);line-height:1.75;max-width:50ch; }
.sheet p + p{ margin-top:.95rem; }
.sheet h2,.sheet h3{ color:#33261B; }
.sheet .sheet-rule{ border:0;border-top:1px solid rgba(34,26,20,.16);margin:1.4rem 0; }

/* ---------- mini ledger: capability / benefit lists with copper ticks ---------- */
.mini-ledger{ list-style:none;display:grid;gap:.1rem;margin-top:1.5rem; }
/* Cycle 3: these benefit lists were single-column and stranded on the left half
   of the widened band. Flow them into as many ~17rem columns as fit so the
   ledger fills the width and reads as a deliberate multi-column register. The
   contact page's .ct-reach is a two-child contact row, not a benefit list, so it
   is excluded and keeps its own layout. */
.mini-ledger:not(.ct-reach){
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  column-gap:clamp(1.5rem, 4vw, 3.5rem);
}
.mini-ledger li{
  display:grid;grid-template-columns:1.4rem 1fr;gap:.85rem;align-items:start;
  padding-block:.72rem;
  border-top:1px solid rgba(192,117,77,.16);
  line-height:1.55;
}
.mini-ledger li:last-child{ border-bottom:1px solid rgba(192,117,77,.16); }
.mini-ledger .tick{ color:var(--copper);font-weight:700;line-height:1.55; }
.sheet .mini-ledger li{ border-color:rgba(34,26,20,.14); }
.sheet .mini-ledger .tick{ color:var(--rust-hover); }

/* ---------- numbered ledger: services 01-05, core values 01-07 ---------- */
.ledger-list{ list-style:none;margin-top:1.75rem; }
.ledger-list > li{
  display:grid;
  grid-template-columns:4.2rem minmax(0,1fr) auto;
  column-gap:clamp(1rem,2.6vw,2rem);
  align-items:baseline;
  padding-block:1.35rem;
  border-top:1px solid rgba(192,117,77,.18);
}
.ledger-list > li:last-child{ border-bottom:1px solid rgba(192,117,77,.18); }
.ledger-n{
  font-size:1.5rem;font-weight:300;line-height:1;
  color:var(--copper);
  font-variant-numeric:tabular-nums;
}
.ledger-body h3{ margin-bottom:.4rem; }
.ledger-body p{ color:var(--taupe);line-height:1.65;max-width:44ch;font-size:.95rem; }
.ledger-go{
  color:var(--peach);text-decoration:none;font-size:.8rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
  transition:color .18s ease;
}
.ledger-go:hover{ color:var(--bone); }
@media (max-width:46rem){
  .ledger-list > li{ grid-template-columns:2.9rem minmax(0,1fr);row-gap:.5rem; }
  .ledger-go{ grid-column:2; }
}

/* ---------- process stepper (shared partial, used on 3+ pages) ---------- */
.process .steps{ list-style:none;margin-top:2rem;display:grid;gap:1px;
  background:rgba(192,117,77,.18);border-block:1px solid rgba(192,117,77,.18); }
.process .step{ background:var(--espresso);padding:1.55rem clamp(1rem,2.5vw,1.75rem); }
.band-alt .process .step{ background:var(--espresso-deep); }
.process .step-n{
  display:block;font-size:.78rem;font-weight:700;letter-spacing:.16em;
  color:var(--copper);font-variant-numeric:tabular-nums;margin-bottom:.6rem;
}
.process .step h3{ margin-bottom:.5rem; }
.process .step p{ color:var(--taupe);font-size:.92rem;line-height:1.62;max-width:52ch; }

/* Catch-all measure cap for loose paragraphs written straight into a band.
   Scoped to a direct .wrap child so it cannot override .sheet p (50ch) or
   any component that sets its own. Without it, a plain <p> inherited the full
   800px column and ran ~110 real characters per line at tablet width. */
.band > .wrap > p,
.band > .wrap > div > p:not([class]){ max-width:52ch; }
@media (min-width:56rem){ .process .steps{ grid-template-columns:repeat(4,1fr); } }

/* ---------- audience cards ---------- */
.audience{
  list-style:none;margin-top:1.75rem;
  display:grid;gap:.9rem;
  grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  /* equal row heights - one- and two-line chits were rendering ragged */
  grid-auto-rows:1fr;
  align-items:stretch;
}
/* Audience items as small PAPER CHITS, not umber boxes - the device the
   homepage uses for its five commitments. Dark ink on paper, a stamped copper
   rule, and a slight per-item tilt so they read as placed rather than gridded. */
.audience li{
  position:relative;
  color:#33261B;
  border-radius:2px;
  padding:1rem 1.1rem 1.15rem;
  font-size:.95rem;line-height:1.5;font-weight:500;
  background:
    radial-gradient(120% 80% at 10% 0%, rgba(255,255,255,.45) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(166deg,#F5EDDF 0%,#EBDFCB 100%);
  box-shadow:0 1px 2px rgba(0,0,0,.24), 0 12px 26px -14px rgba(0,0,0,.6);
  transform:rotate(var(--chit-tilt,0deg));
}
.audience li:nth-child(3n+1){ --chit-tilt:-.45deg; }
.audience li:nth-child(3n+2){ --chit-tilt:.35deg; }
.audience li:nth-child(3n+3){ --chit-tilt:-.2deg; }
.audience li::after{
  content:"";position:absolute;left:1.1rem;right:1.1rem;bottom:.55rem;
  height:1px;background:rgba(143,64,34,.28);
}
@media (prefers-reduced-motion:reduce){ .audience li{ transform:none; } }

/* ---------- FAQ grid ---------- */
.faq{ margin-top:1.9rem;border-top:1px solid rgba(192,117,77,.18); }
.faq details{ border-bottom:1px solid rgba(192,117,77,.18); }
.faq summary{
  cursor:pointer;list-style:none;
  padding-block:1.15rem;padding-right:2rem;
  font-weight:600;font-size:1rem;line-height:1.4;
  position:relative;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+";position:absolute;right:.25rem;top:1.05rem;
  color:var(--copper);font-size:1.25rem;font-weight:400;line-height:1;
  transition:transform .2s ease;
}
.faq details[open] summary::after{ content:"\2013"; }
.faq summary:hover{ color:var(--peach); }
.faq .faq-a{ padding-bottom:1.25rem;color:var(--taupe);line-height:1.7;max-width:64ch; }

/* ---------- "important considerations" hedge band ----------
   Flat and always visible, never an accordion or modal: 11 of 11 licensed
   firms sampled used flat text and zero used a modal. */
.considerations{
  margin-top:2.25rem;padding-top:1.4rem;
  border-top:1px solid rgba(192,117,77,.26);
}
.considerations h2,.considerations h3{
  font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--bone);margin-bottom:.75rem;max-width:none;
}
.considerations p{
  color:var(--taupe);font-size:.78rem;line-height:1.72;max-width:76ch;
}
.considerations p + p{ margin-top:.6rem; }
/* the short, specific hedge that sits inline at the point of a claim */
.inline-hedge{
  display:block;margin-top:.85rem;
  color:var(--taupe);font-size:.78rem;line-height:1.6;font-style:italic;
  max-width:50ch;
}
/* inside a parchment sheet the hedge sits between paragraphs, so it needs its
   own bottom margin - `.sheet p + p` does not apply across a <span> sibling
   and the following paragraph was colliding with it. */
.sheet .inline-hedge{
  color:rgba(34,26,20,.72);
  margin-bottom:1.15rem;
  padding-left:.9rem;
  border-left:2px solid rgba(169,80,44,.35);
}
.sheet .inline-hedge + p{ margin-top:0; }

/* ---------- CTA stack (shared partial) ---------- */
.cta-stack{ padding-block:clamp(3.5rem,7vw,6rem);background:var(--espresso-deep); }
/* Cycle 3: the lede + buttons used to stack lower-left, leaving the lower-right
   quadrant of the widened band empty. Foot is now a 2-col row - lede left,
   actions right-aligned - so the CTA fills the width. Stacks at <=834px. */
.cta-foot{ display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(1.75rem,4vw,4rem);margin-top:1.6rem; }
.cta-stack .cta-lede{ margin-top:0;max-width:54ch;color:var(--taupe);line-height:1.7; }
.cta-row{ display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;margin-top:0;justify-content:flex-end; }
@media (max-width:834px){ .cta-foot{ grid-template-columns:1fr;gap:1.6rem; } .cta-row{ justify-content:flex-start; } }
.btn-primary{
  display:inline-block;
  background:var(--rust);color:var(--bone);text-decoration:none;
  font-weight:600;font-size:.95rem;letter-spacing:.02em;
  padding:.95rem 1.9rem;border-radius:999px;
  box-shadow:0 10px 28px -10px rgba(169,80,44,.55);
  transition:background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.btn-primary:hover{
  background:var(--rust-hover);transform:translateY(-1px);
  box-shadow:0 14px 32px -10px rgba(169,80,44,.62);
}
.cta-row .btn-secondary{ font-size:.95rem;padding:.45rem .1rem .3rem; }

/* ---------- cross-link cards (routing, not positioning) ---------- */
/* auto-fit, not fixed column counts. Viewport media queries were forcing 4
   columns inside an 896px container, giving ~200px cards and wrapping titles
   like "Mortgage Protection (Living Benefits)" onto three lines. auto-fit
   responds to the CONTAINER, so cards stay legible whatever holds them. */
.crosslinks{
  list-style:none;margin-top:1.9rem;
  display:grid;gap:.9rem;
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
}
/* Cross-links as FILED CARDS with a numbered tab, matching the process
   partial's folder vocabulary rather than being plain bordered boxes. */
.crosslinks a{
  position:relative;
  display:block;height:100%;text-decoration:none;
  background:var(--umber-panel);
  border:1px solid rgba(192,117,77,.22);
  border-radius:2px 2px 3px 3px;
  padding:1.35rem 1.25rem 1.25rem;
  box-shadow:0 12px 26px -18px rgba(0,0,0,.7);
  transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}
/* the folder tab */
.crosslinks a::before{
  content:"";position:absolute;top:-1px;left:1.15rem;
  width:3.2rem;height:3px;border-radius:2px 2px 0 0;
  background:var(--copper);opacity:.85;
  transition:width .18s ease,opacity .18s ease;
}
.crosslinks a:hover{
  border-color:var(--copper);transform:translateY(-3px);
  box-shadow:0 18px 34px -18px rgba(0,0,0,.8);
}
.crosslinks a:hover::before{ width:5rem;opacity:1; }
.crosslinks .xl-k{
  display:block;font-size:.68rem;font-weight:700;letter-spacing:.17em;
  text-transform:uppercase;
  /* --peach measures 7.4:1 on --umber-panel; --copper was 4.26:1 and missed
     the 4.5:1 floor for small text. */
  color:var(--peach);
  margin-bottom:.5rem;
}
.crosslinks .xl-t{ display:block;color:var(--bone);font-weight:600;line-height:1.35; }

/* ---------- the DRE verification link ----------
   Exactly one site out of 11 sampled offered any licence-verification route.
   RWI already holds a state-verified number, so linking it to the public
   register is a genuine differentiator built from a fact we already have. */
.dre-link{
  color:inherit;text-decoration:none;
  border-bottom:1px dotted var(--copper);
  transition:color .18s ease,border-color .18s ease;
}
.dre-link:hover{ color:var(--peach);border-bottom-color:var(--peach); }

/* === process partial: filed-folder treatment (2026-07-26) === */
/* ==========================================================================
   PROCESS - VARIANT 2: FOUR FILED TABS
   Four sheets of parchment with die-cut numbered tabs, hung off a drawer rail
   and stepped down left-to-right like folders pulled forward in a file drawer.
   The sequence is carried by the composition (rail -> descending staircase ->
   overlap order) plus the numbered tabs. No connector line is drawn.

   SCOPING CONTRACT: every selector below begins with `.pf-` or is a descendant
   of `.pf`. Nothing here matches a bare element, a shared class from style.css,
   or anything outside this section, so it cannot leak onto index.html,
   about.html or our-services.html when this markup is dropped in.
   ========================================================================== */

/* ---------- the desk the folders sit on ---------- */
.pf{
  position:relative;
  isolation:isolate;
  overflow:hidden;                 /* hard overflow guarantee at every width */
  padding-block:clamp(3.25rem,7vw,5.75rem);
  background:
    radial-gradient(64% 58% at 50% 0%, rgba(192,117,77,.075) 0%, rgba(192,117,77,0) 68%),
    var(--espresso);
  border-top:1px solid rgba(192,117,77,.14);
  color:var(--bone);
}
/* faint desk grain + edge vignette. Decorative only, never hit-testable. */
.pf::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(rgba(245,237,225,.035) 1px, transparent 1.5px),
    radial-gradient(rgba(20,13,8,.34) 1px, transparent 1.6px),
    radial-gradient(120% 78% at 50% 46%, rgba(26,19,14,0) 40%, rgba(26,19,14,.55) 100%);
  background-size:190px 170px, 233px 209px, 100% 100%;
  background-position:0 0, 71px 53px, 0 0;
}
.pf-wrap{
  position:relative;z-index:1;
  width:100%;
  /* MUST match .wrap (kept in sync with the cycle 2 / D1 axis). At 96rem this
     band ran 346px wider than every other section, so its eyebrow and heading
     started visibly further left than the ones above and below it - the same
     misalignment that made the war-room heading look wrong. Siblings share a
     measure. */
  max-width:clamp(56rem, 82vw, 80rem);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4.5vw,3rem);
}

/* ---------- drafting title block ---------- */
.pf-eyebrow{
  display:flex;align-items:center;gap:.85rem;
  margin:0 0 1.15rem;
}
.pf-eyebrow .pf-eyebrow-t{
  font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--peach);
  white-space:nowrap;
}
.pf-eyebrow::before{
  content:"";flex:none;width:.42rem;height:.42rem;
  background:var(--copper);transform:rotate(45deg);
}
.pf-eyebrow::after{
  content:"";flex:1 1 auto;min-width:1.5rem;height:1px;
  background:linear-gradient(90deg,rgba(192,117,77,.55) 0%,rgba(192,117,77,.06) 100%);
}
.pf-h2{
  margin:0;
  font-size:clamp(1.75rem,3.2vw,3rem);
  font-weight:600;line-height:1.1;letter-spacing:-.016em;
  color:var(--bone);
  max-width:14ch;
  text-wrap:balance;
}

/* the drawer rail the first folder hangs from */
.pf-rail{
  position:relative;
  margin-top:clamp(2rem,3.6vw,3.1rem);
  height:1px;
  background:linear-gradient(90deg,rgba(192,117,77,.42) 0%,rgba(192,117,77,.42) 62%,rgba(192,117,77,.12) 100%);
}
.pf-rail::before,
.pf-rail::after{
  content:"";position:absolute;top:-.28rem;
  width:1px;height:.62rem;background:rgba(192,117,77,.5);
}
.pf-rail::before{left:0;}
.pf-rail::after{right:0;background:rgba(192,117,77,.18);}

/* ---------- the drawer ---------- */
.pf-drawer{
  /* --pf-ov is how far each sheet is filed behind the next one. It is ZERO in
     the stacked phone layout and set per breakpoint below. Everything that has
     to know about the overlap - the drawer offset, each sheet's pull-back, the
     dead strip on the right of a covered sheet - derives from this one value,
     so the overlap can never get out of sync with the text inset. */
  --pf-ov:0px;
  list-style:none;
  margin:1.15rem 0 0;padding:0;   /* the tabs hang just below the rail */
  margin-left:var(--pf-ov);
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
  align-items:stretch;
}
.pf-file{
  /* --pf-cov = how much of THIS sheet's right edge is hidden under the next
     one. Reset to 0 for whichever sheet is last in its row - nothing covers
     it, so it must not carry a phantom right gutter. */
  --pf-cov:var(--pf-ov);
  position:relative;
  display:flex;flex-direction:column;
  min-width:0;
  margin-left:calc(-1 * var(--pf-ov));
  transform:rotate(var(--pf-tilt,0deg));
  transform-origin:1.6rem 0;
}

/* --- the die-cut tab --- */
.pf-tab{
  position:relative;z-index:2;
  align-self:flex-start;
  display:flex;align-items:flex-end;
  margin-left:1.05rem;
  min-width:6.35rem;
  padding:.42rem 1.55rem .3rem .85rem;
  background:linear-gradient(178deg,var(--bone) 0%,var(--parchment) 100%);
  clip-path:polygon(0 0, calc(100% - 1.15rem) 0, 100% 100%, 0 100%);
}
.pf-tab::before{            /* copper index strip along the tab's top edge */
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--copper) 0%,var(--rust) 100%);
}
.pf-tab-n{
  font-size:1.02rem;font-weight:700;line-height:1;
  letter-spacing:.11em;
  font-variant-numeric:tabular-nums;
  color:var(--rust-hover);     /* 5.87:1 on parchment (measured, see style.css) */
}

/* --- the sheet --- */
.pf-sheet{
  position:relative;
  flex:1 1 auto;
  overflow:hidden;             /* clips the ghosted numeral */
  margin-top:-1px;
  padding:clamp(1.2rem,1.7vw,1.6rem) clamp(1.15rem,1.6vw,1.55rem) clamp(1.35rem,2vw,1.8rem);
  /* THE FILING RULE. A sheet is physically one overlap wider than its column so
     that all four columns come out identical (see the drawer note), but that
     extra strip is HIDDEN under the next sheet. Text set into it disappears -
     measured in a real render, "financial" and "professionals" were being
     swallowed. So the covered strip is added to the right padding and stays
     empty. Every sheet therefore shows the same visible gutter. */
  padding-right:calc(clamp(1.15rem,1.6vw,1.55rem) + var(--pf-cov));
  /* paper: bone-to-parchment, then an ink wash that deepens toward the filed
     bottom-right corner so the sheet reads as a physical surface catching
     light. Every layer is a palette token or a palette ink at low alpha -
     no colour outside the system. */
  background:
    radial-gradient(rgba(34,26,20,.035) .5px, transparent 1px),
    linear-gradient(163deg,rgba(34,26,20,0) 52%,rgba(34,26,20,.05) 100%),
    linear-gradient(163deg,var(--bone) 0%,var(--parchment) 62%,var(--parchment) 100%);
  background-size:26px 24px, 100% 100%, 100% 100%;
  color:#33261B;
  border-radius:0 .34rem .3rem .3rem;
  box-shadow:
    0 20px 42px -20px rgba(0,0,0,.66),
    0 2px 5px rgba(0,0,0,.28),
    -14px 0 26px -18px rgba(0,0,0,.7);   /* the "sits in front of" edge shadow */
}
.pf-sheet::before{           /* the folder crease down the filed edge */
  content:"";position:absolute;left:0;top:0;bottom:0;width:.3rem;
  background:linear-gradient(90deg,rgba(34,26,20,.14) 0%,rgba(34,26,20,0) 100%);
}
.pf-ghost{
  position:absolute;right:calc(.35rem + var(--pf-cov));bottom:-1.15rem;
  font-size:clamp(3.6rem,5.4vw,5.8rem);font-weight:700;line-height:.8;
  letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;
  /* the sheets are forced to equal height, so a short step (01) leaves a blank
     lower half. The ghosted numeral is what makes that blank read as margin on
     a document rather than as an unfinished card. Watermark weight only - it is
     aria-hidden and the same numeral is set legibly on the tab. */
  color:rgba(34,26,20,.08);
  pointer-events:none;user-select:none;
}
.pf-title{
  position:relative;
  margin:0;
  font-size:clamp(1.02rem,1.15vw,1.2rem);
  font-weight:600;line-height:1.28;letter-spacing:-.006em;
  color:#33261B;
}
.pf-hr{
  position:relative;
  border:0;border-top:1px solid rgba(169,80,44,.42);
  width:2.1rem;margin:.72rem 0 .8rem;
}
.pf-copy{
  position:relative;
  margin:0;
  max-width:50ch;              /* ~68 real characters; columns are narrower */
  font-size:.95rem;font-weight:400;line-height:1.68;
  color:rgba(34,26,20,.78);    /* 5.4:1 on parchment */
  text-wrap:pretty;
}

/* ==========================================================================
   TABLET AND UP - two filed columns, stepped within each row
   ========================================================================== */
@media (min-width:42rem){
  /* Setting --pf-ov here is all it takes to switch the filing on: the drawer
     offset, each sheet's pull-back and each covered sheet's dead right strip
     are all derived from it up in the base rules.
     WHY THE DRAWER IS OFFSET RATHER THAN COLUMNS 2..n BEING PULLED LEFT:
     the obvious version gives the negative margin only to columns 2..n, and
     measured in a real render that is a defect - column 1 comes out one
     overlap narrower than the rest and its measure falls to 38 characters
     while its neighbours sit near 49. Offsetting the whole drawer right and
     pulling EVERY sheet back left by the same amount makes all columns
     identical, keeps sheet 1 flush on the container's left edge and the last
     sheet flush on the right, and adds no overflow. Verified: all four sheets
     render the same width at 1920, 1440, 834 and 390. */
  .pf-drawer{ --pf-ov:1.6rem; grid-template-columns:repeat(2,1fr); gap:2.4rem 0; }
  /* sheets 2 and 4 end their row, so nothing covers them */
  .pf-file:nth-child(2),
  .pf-file:nth-child(4){ --pf-cov:0px; }
  .pf-file:nth-child(1){ --pf-tilt:-.6deg;  z-index:1; margin-block:0 2.1rem; }
  .pf-file:nth-child(2){ --pf-tilt:.5deg;   z-index:2; margin-block:2.1rem 0; }
  .pf-file:nth-child(3){ --pf-tilt:-.45deg; z-index:3; margin-block:0 2.1rem; }
  .pf-file:nth-child(4){ --pf-tilt:.6deg;   z-index:4; margin-block:2.1rem 0; }
}

/* ==========================================================================
   DESKTOP - four across, one continuous staircase down the drawer
   ========================================================================== */
@media (min-width:74rem){
  .pf-drawer{ --pf-ov:1.5rem; grid-template-columns:repeat(4,1fr); gap:0; }
  /* one continuous row: only the fourth sheet is uncovered. These must be
     restated (not inherited from the 2-column block) because the 2-column
     rule on nth-child(2) is more specific than a bare .pf-file rule. */
  .pf-file:nth-child(2),
  .pf-file:nth-child(3){ --pf-cov:var(--pf-ov); }
  .pf-file:nth-child(4){ --pf-cov:0px; }
  .pf-file:nth-child(1){ --pf-tilt:-.7deg;  z-index:1; margin-block:0      6.3rem; }
  .pf-file:nth-child(2){ --pf-tilt:.5deg;   z-index:2; margin-block:2.1rem 4.2rem; }
  .pf-file:nth-child(3){ --pf-tilt:-.45deg; z-index:3; margin-block:4.2rem 2.1rem; }
  .pf-file:nth-child(4){ --pf-tilt:.6deg;   z-index:4; margin-block:6.3rem 0;      }
  .pf-tab{ min-width:7rem;padding-right:1.75rem; }
  .pf-tab-n{ font-size:1.1rem; }
  /* MEASURE - MEASURED IN A BROWSER, NOT ESTIMATED FROM `ch`.
     At four real columns the text box is the binding constraint. Rendered in
     Bricolage Grotesque a character averages ~0.47em of advance, so a 15.2px
     (.95rem) body needs a ~320px text box just to reach the 45-character
     floor, which a 4-up grid cannot supply at 1440 without running the
     container edge to edge. Three levers, in order of preference: page
     padding trimmed to 2.25rem, card side padding to 1.25rem, and the card
     body dropped one step to .9rem (14.4px) - which is where a 4-up card
     body belongs anyway. MEASURED RESULT: the text box holds 44-49 characters
     at 1440 and 46-49 at 1920. Individual rendered lines run 38-49 because
     text-wrap:pretty distributes a 3-line paragraph rather than leaving a
     stub; that is the wrap doing its job, not a short measure.
     Do not raise any of the three values without re-measuring in a browser. */
  .pf-wrap{ padding-inline:2.25rem; }
  .pf-sheet{ padding-left:1.25rem; padding-right:calc(1.25rem + var(--pf-cov)); }
  .pf-copy{ font-size:.9rem; }
}

/* ==========================================================================
   ENTRANCE - 0.42s each, 0.10s stagger, 0.72s total. Under the 0.9s ceiling.
   ========================================================================== */
@keyframes pf-file-in{
  from{ opacity:0; transform:translateY(12px) rotate(var(--pf-tilt,0deg)); }
}
.pf-file{ animation:pf-file-in .42s cubic-bezier(.22,.9,.3,1) both; }
.pf-file:nth-child(1){ animation-delay:0s;   }
.pf-file:nth-child(2){ animation-delay:.10s; }
.pf-file:nth-child(3){ animation-delay:.20s; }
.pf-file:nth-child(4){ animation-delay:.30s; }

@media (prefers-reduced-motion:reduce){
  .pf-file{ animation:none; opacity:1; }
}
/* === end process partial === */


/* ==================================================================
   HOME PAGE (index.html) - folded from its former inline <style> in
   cycle 2. Scoped under :where(.hm) so it is specificity-neutral and
   cannot reach any other page; keyframes and :root (--hm-*) are global
   and collision-free. Source history: src/index.html @ git.
   ================================================================== */
:root{--hm-shell: clamp(56rem, 82vw, 80rem);
    --hm-shell-wide: clamp(56rem, 88vw, 84rem);
    --hm-gutter: clamp(1.25rem, 4.5vw, 3rem);}
:where(.hm) .skip-link{position:absolute;top:.6rem;left:.6rem;z-index:10;
    background:var(--espresso-deep);color:var(--bone);
    font-size:.85rem;font-weight:500;letter-spacing:.03em;
    padding:.55rem 1rem;border-radius:.4rem;
    text-decoration:none;
    transform:translateY(-300%);}
:where(.hm) .skip-link:focus-visible{transform:none;}
:where(.hm) .site-header{position:relative;
    background:var(--espresso);
    border-bottom:1px solid rgba(245,237,225,.09);}
:where(.hm) .utility{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
    padding:.4rem clamp(1.25rem,4.5vw,4rem);
    border-bottom:1px solid rgba(245,237,225,.09);
    font-size:.85rem;}
:where(.hm) .utility a{line-height:1.2;
    padding:.5rem .1rem;}
:where(.hm) .masthead{display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:clamp(1.2rem,2.5vw,2.5rem);
    padding:1.1rem clamp(1.25rem,4.5vw,4rem) 1.25rem;
    
    background:radial-gradient(46% 130% at 50% 0%, rgba(192,117,77,.09) 0%, rgba(192,117,77,0) 72%);}
:where(.hm) .nav-group{display:flex;align-items:center;gap:clamp(1rem,2.2vw,2rem);
    white-space:nowrap;}
:where(.hm) .nav-group.left{justify-self:end;}
:where(.hm) .nav-group.right{justify-self:start;}
:where(.hm) .nav-group a.active,
:where(.hm) .nav-group a[aria-current="page"]{color:var(--bone);
    text-decoration:underline;
    text-decoration-color:var(--copper);
    text-decoration-thickness:1px;
    text-underline-offset:.5em;}
:where(.hm) .logo-link{display:block;line-height:0;
    transition:transform .25s ease;}
:where(.hm) .logo-link:hover{transform:translateY(-2px);}
:where(.hm) .logo-link img{width:clamp(6.5rem,9vw,8rem);
    height:auto;
    
    filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));}
:where(.hm) .hero{position:relative;
    min-height:max(34rem, calc(100svh - 13rem));
    display:flex;
    flex-direction:column;
    background:
      radial-gradient(120% 90% at 78% 18%, rgba(192,117,77,.14) 0%, rgba(192,117,77,0) 55%),
      radial-gradient(140% 110% at 10% 110%, var(--espresso-deep) 0%, var(--espresso) 60%);
    overflow:hidden;}
:where(.hm) .scroll-cue{position:fixed; 
    left:50%;bottom:1.4rem;
    transform:translateX(-50%);
    z-index:5;
    display:flex;flex-direction:column;align-items:center;gap:.4rem;
    color:var(--taupe);
    text-decoration:none;
    font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
    opacity:.8;
    animation:cue-fade .8s .9s ease both;
    transition:color .2s ease,opacity .2s ease,visibility .2s ease;}
:where(.hm) .scroll-cue:hover{color:var(--peach);opacity:1;}
:where(.hm) .scroll-cue.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}
:where(.hm) .scroll-cue svg{animation:cue-bounce 1.9s ease-in-out infinite;}
@keyframes cue-fade{from{opacity:0;}to{opacity:.8;}}
@keyframes cue-bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}
@media (prefers-reduced-motion:reduce){
:where(.hm) .scroll-cue svg{animation:none;}
}
@media (max-width:600px){
:where(.hm) .scroll-cue{display:none;}
}
:where(.hm) .hero-grid{flex:1;
    display:grid;
    grid-template-columns:minmax(0,7fr) minmax(0,5fr);
    gap:clamp(2rem,5vw,5rem);
    align-items:center;
    
    padding:clamp(3rem,6.5vh,5rem) clamp(1.25rem,4.5vw,4rem) clamp(3.25rem,8vh,5.5rem);
    max-width:var(--hm-shell);
    margin:0 auto;
    width:100%;}
:where(.hm) .eyebrow{display:inline-flex;align-items:center;gap:.65rem;
    font-size:.78rem;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--peach);
    margin-bottom:1.6rem;
    animation:rise .7s ease both;}
:where(.hm) .eyebrow::before{content:"";display:block;width:2.2rem;height:1px;background:var(--copper);}
:where(.hm) h1{font-size:clamp(2.1rem,4.6vw,3.6rem);
    font-weight:600;
    line-height:1.12;
    letter-spacing:-.015em;
    max-width:19ch;
    animation:rise .7s .08s ease both;}
:where(.hm) h1 .turn{color:var(--peach);}
:where(.hm) .subhead{margin-top:1.5rem;
    font-size:clamp(1rem,1.35vw,1.15rem);
    font-weight:300;
    line-height:1.65;
    color:var(--taupe);
    max-width:52ch;
    animation:rise .7s .16s ease both;}
:where(.hm) .subhead strong{color:var(--bone);font-weight:500;}
:where(.hm) .cred-line{margin-top:1.6rem;
    display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;
    font-size:.8rem;letter-spacing:.06em;
    color:var(--taupe);
    animation:rise .7s .24s ease both;}
:where(.hm) .cta-row{margin-top:2.4rem;
    display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem;
    animation:rise .7s .32s ease both;}
:where(.hm) .btn-primary{display:inline-block;
    background:var(--rust);
    color:var(--bone);
    text-decoration:none;
    font-weight:600;font-size:.95rem;letter-spacing:.02em;
    padding:.95rem 1.9rem;
    border-radius:999px;
    box-shadow:0 10px 28px -10px rgba(169,80,44,.55);
    transition:background .18s ease, transform .18s ease, box-shadow .18s ease;}
:where(.hm) .btn-primary:hover{background:var(--rust-hover);
    transform:translateY(-2px);
    box-shadow:0 14px 32px -10px rgba(169,80,44,.65);}
:where(.hm) .btn-secondary{font-size:.95rem;
    padding:.45rem .1rem .3rem;}
:where(.hm) .btn-primary:focus-visible{outline-offset:4px;border-radius:999px;}
:where(.hm) .portrait-wrap{position:relative;
    justify-self:end;
    width:min(100%,26rem);
    animation:rise .8s .2s ease both;}
:where(.hm) .portrait-frame{position:relative;
    border-radius:14rem 14rem 1rem 1rem; 
    overflow:hidden;
    border:1px solid rgba(229,168,124,.35);
    box-shadow:
      0 30px 60px -25px rgba(0,0,0,.65),
      0 0 0 8px rgba(192,117,77,.07),
      0 0 0 9px rgba(70,126,231,.28);}
:where(.hm) .portrait-frame img{display:block;width:100%;height:auto;
    aspect-ratio:4/4.7;
    object-fit:cover;
    object-position:32% 22%;}
:where(.hm) .portrait-frame::after{content:"";position:absolute;inset:0;
    background:linear-gradient(to top, rgba(34,26,20,.42) 0%, rgba(34,26,20,0) 42%);
    pointer-events:none;}
:where(.hm) .calling-card{position:absolute;
    left:clamp(-3.5rem,-6vw,-1.5rem);
    bottom:clamp(1.2rem,3vh,2.2rem);
    width:min(17.5rem,80%);
    background:linear-gradient(160deg,var(--bone) 0%,var(--parchment) 100%);
    color:#33261B;
    border-radius:.5rem;
    padding:1.15rem 1.3rem 1.05rem;
    box-shadow:0 22px 45px -18px rgba(0,0,0,.7);
    transform:rotate(-2.2deg);
    transition:transform .25s ease;}
:where(.hm) .portrait-wrap:hover .calling-card{transform:rotate(-.6deg) translateY(-3px);}
:where(.hm) .calling-card::before{content:"";position:absolute;top:-.55rem;left:1.4rem;
    width:2.4rem;height:1.1rem;
    border:2px solid var(--copper);
    border-bottom:none;
    border-radius:1.1rem 1.1rem 0 0;
    opacity:.85;}
:where(.hm) .calling-card .name{font-weight:700;font-size:1.02rem;letter-spacing:.01em;}
:where(.hm) .calling-card .role{font-size:.76rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;
    color:var(--rust);
    margin-top:.2rem;}
:where(.hm) .calling-card hr{border:none;border-top:1px solid rgba(51,38,27,.15);
    margin:.7rem 0 .6rem;}
:where(.hm) .calling-card .licenses{font-size:.72rem;line-height:1.55;letter-spacing:.05em;
    color:#6E5B49;}
@keyframes rise{from{opacity:0;transform:translateY(16px);}
    to{opacity:1;transform:translateY(0);}}
@media (max-width:1080px){
:where(.hm) .masthead{display:flex;flex-wrap:wrap;
      justify-content:center;align-items:center;
      
      gap:.15rem 1.1rem;
      padding-top:1.5rem;padding-bottom:1rem;}
:where(.hm) .logo-link{flex:0 0 100%;order:-1;text-align:center;margin-bottom:.7rem;}
:where(.hm) .nav-group{display:contents;}
:where(.hm) .nav-group a{font-size:.78rem;}
}
@media (max-width:900px){
:where(.hm) .hero-grid{grid-template-columns:1fr;
      gap:2.9rem; 
      padding-top:2.75rem;}
:where(.hm) .portrait-wrap{justify-self:center;width:min(100%,22rem);
      order:-1;
      animation-delay:.05s;}
:where(.hm) .calling-card{left:clamp(-.8rem,-2vw,0rem);}
:where(.hm) .eyebrow{animation-delay:.22s;}
:where(.hm) h1{max-width:none;animation-delay:.3s;}
:where(.hm) .subhead{animation-delay:.38s;}
:where(.hm) .cred-line{animation-delay:.46s;}
:where(.hm) .cta-row{animation-delay:.54s;}
}
@media (max-width:520px){
:where(.hm) .utility{justify-content:center;flex-wrap:wrap;
      gap:0 1.1rem;
      padding-top:.3rem;padding-bottom:.3rem;}
:where(.hm) .masthead{gap:.1rem .9rem;}
:where(.hm) .logo-link img{width:6.5rem;}
:where(.hm) .calling-card{position:relative;left:auto;bottom:auto;margin:-2.6rem auto 0;transform:rotate(-1.4deg);width:90%;}
:where(.hm) .cta-row{gap:1rem;}
:where(.hm) .btn-primary{flex:1 1 100%;text-align:center;max-width:22rem;}
}
:where(.hm) .services-preview{position:relative;
    background:
      radial-gradient(55% 75% at 16% 0%, rgba(192,117,77,.06) 0%, rgba(192,117,77,0) 70%),
      var(--espresso);
    padding:clamp(4rem,9vh,6.25rem) clamp(1.25rem,4.5vw,4rem) clamp(4.5rem,10vh,7rem);}
:where(.hm) .preview-inner{max-width:72rem;margin:0 auto;}
:where(.hm) .section-head{max-width:44rem;}
:where(.hm) .services-preview .eyebrow{display:flex;align-items:center;gap:.7rem;
    font-size:.8rem;font-weight:600;
    letter-spacing:.18em;text-transform:uppercase;
    color:var(--peach);
    margin-bottom:0;animation:none;}
:where(.hm) .services-preview .eyebrow::before{content:"";width:2rem;height:1px;background:var(--copper);flex:none;}
:where(.hm) .section-head h2{margin-top:1.05rem;
    font-size:clamp(1.75rem,3.2vw,2.5rem);
    font-weight:600;line-height:1.15;
    letter-spacing:-.01em;
    color:var(--bone);}
:where(.hm) .section-head .turn{color:var(--peach);}
:where(.hm) .section-head .lede{margin-top:1rem;
    font-size:clamp(.98rem,1.2vw,1.05rem);
    font-weight:300;line-height:1.65;
    color:var(--taupe);
    max-width:40rem;}
:where(.hm) .chapters{position:relative;
    margin-top:clamp(2.7rem,6vh,4rem);
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:clamp(1.4rem,2.5vw,2.2rem);}
:where(.hm) .chapters::before{content:"";
    position:absolute;left:-1.25rem;right:-1.25rem;top:3.35rem;
    height:1px;
    background:linear-gradient(90deg,
      rgba(192,117,77,0) 0%,
      rgba(192,117,77,.42) 7%,
      rgba(192,117,77,.42) 93%,
      rgba(192,117,77,0) 100%);
    pointer-events:none;}
:where(.hm) .chapter{display:flex;flex-direction:column;text-decoration:none;color:inherit;}
:where(.hm) .chapter .num{display:flex;align-items:flex-end;
    height:3.4rem;
    margin-bottom:1.05rem;
    padding-left:.15rem;
    font-size:clamp(2.6rem,3.4vw,3.4rem);
    font-weight:300;line-height:.98;
    letter-spacing:.02em;
    color:var(--copper);
    transition:color .22s ease;}
:where(.hm) .chapter .card{flex:1;
    display:flex;flex-direction:column;
    background:var(--umber-panel);
    border:1px solid rgba(245,237,225,.09);
    border-radius:.55rem;
    padding:1.5rem 1.4rem 1.45rem;
    transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;}
:where(.hm) .chapter .tag{display:inline-flex;align-items:center;gap:.45rem;
    font-size:.72rem;font-weight:600;
    letter-spacing:.16em;text-transform:uppercase;
    color:var(--taupe);}
:where(.hm) .chapter .tag::before{content:"";width:.32rem;height:.32rem;border-radius:50%;
    background:var(--copper);flex:none;}
:where(.hm) .chapter .title{margin-top:.7rem;font-size:1.28rem;font-weight:600;line-height:1.2;color:var(--bone);}
:where(.hm) .chapter .hook{margin-top:.6rem;font-size:.93rem;font-weight:300;line-height:1.62;color:var(--taupe);}
:where(.hm) .chapter .hook strong{color:var(--bone);font-weight:500;}
:where(.hm) .chapter .go{margin-top:1.2rem;
    display:inline-flex;align-items:center;gap:.45rem;
    font-size:.88rem;font-weight:500;line-height:1.3;
    color:var(--peach);}
:where(.hm) .chapter .go svg{flex:none;transition:transform .22s ease;}
:where(.hm) .chapter:hover .card{transform:translateY(-3px);
    border-color:rgba(192,117,77,.45);
    box-shadow:0 18px 40px rgba(0,0,0,.35);}
:where(.hm) .chapter:hover .num{color:var(--peach);}
:where(.hm) .chapter:hover .go svg{transform:translateX(3px);}
@media (max-width:900px){
:where(.hm) .chapters{grid-template-columns:1fr;gap:0;}
:where(.hm) .chapters::before{display:none;}
:where(.hm) .chapter + .chapter{position:relative;margin-top:2.55rem;}
:where(.hm) .chapter + .chapter::before{content:"";
      position:absolute;top:-2.1rem;left:1.15rem;
      width:1px;height:1.65rem;
      background:rgba(192,117,77,.42);}
:where(.hm) .chapter .num{height:auto;font-size:2.3rem;margin-bottom:.7rem;}
}
:where(.hm) .warroom{position:relative;
    background:
      radial-gradient(70% 52% at 50% 46%, rgba(192,117,77,.09) 0%, rgba(192,117,77,0) 68%),
      var(--espresso);
    padding:clamp(3.4rem,7vh,5.5rem) clamp(1rem,4vw,4rem) clamp(3.8rem,8vh,6rem);
    overflow:hidden;
    border-top:1px solid rgba(245,237,225,.07);}
:where(.hm) .team-head{position:relative;max-width:72rem;margin:0 auto;text-align:center;}
:where(.hm) .team-head h2{max-width:44rem;margin-inline:auto;}
:where(.hm) .team-count{position:absolute;
    top:-3.2rem;left:50%;
    transform:translateX(-50%);
    font-size:clamp(9rem,20vw,15rem);
    font-weight:700;line-height:1;
    color:transparent;
    -webkit-text-stroke:1.5px rgba(192,117,77,.16);
    pointer-events:none;
    z-index:0;
    user-select:none;}
:where(.hm) .team-head > *{position:relative;z-index:1;}
@media (max-width:640px){
:where(.hm) .team-count{top:-2.2rem;font-size:7rem;}
}
:where(.hm) .team-head .eyebrow{display:inline-flex;align-items:center;gap:.65rem;
    font-size:.78rem;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--peach);
    margin-bottom:1.4rem;}
:where(.hm) .team-head .eyebrow::before,
:where(.hm) .team-head .eyebrow::after{content:"";display:block;width:2.2rem;height:1px;background:var(--copper);}
:where(.hm) .team-head h2{font-size:clamp(1.85rem,3.6vw,2.85rem);font-weight:600;line-height:1.16;letter-spacing:-.012em;}
:where(.hm) .team-head h2 .turn{color:var(--peach);}
:where(.hm) .team-head .lede{margin:1.15rem auto 0;
    font-size:clamp(.98rem,1.25vw,1.1rem);
    font-weight:300;line-height:1.65;
    color:var(--taupe);
    max-width:44ch;}
:where(.hm) .team-head .lede strong{color:var(--bone);font-weight:500;}
:where(.hm) .board{position:relative;
    max-width:72rem;
    height:54rem;
    margin:clamp(2.4rem,5vh,3.6rem) auto 0;
    border:.62rem solid #1B130D;
    border-radius:1rem;
    background:linear-gradient(158deg,#3D2D1E 0%,#352819 52%,#2C2013 100%);
    box-shadow:
      inset 0 2px 10px rgba(0,0,0,.55),
      inset 0 -1px 3px rgba(245,237,225,.05),
      0 46px 90px -38px rgba(0,0,0,.75),
      0 0 0 1px rgba(245,237,225,.06);}
:where(.hm) .board::before{content:"";position:absolute;inset:0;border-radius:.4rem;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
    mix-blend-mode:soft-light;
    opacity:.55;
    pointer-events:none;}
:where(.hm) .board::after{content:"";position:absolute;inset:0;border-radius:.4rem;
    background-image:
      radial-gradient(rgba(245,237,225,.045) 1px, transparent 1.5px),
      radial-gradient(rgba(20,13,8,.5) 1px, transparent 1.6px),
      radial-gradient(55% 45% at 50% 30%, rgba(229,168,124,.05), transparent 70%);
    background-size:190px 170px, 233px 209px, 100% 100%;
    background-position:0 0, 71px 53px, 0 0;
    pointer-events:none;}
:where(.hm) .piece{position:absolute;z-index:2;display:block;color:inherit;text-decoration:none;}
:where(.hm) .paper{position:relative;
    background:linear-gradient(163deg,var(--bone) 0%,var(--parchment) 100%);
    color:#33261B;
    border-radius:.45rem;
    box-shadow:0 18px 38px -16px rgba(0,0,0,.65),0 2px 6px rgba(0,0,0,.35);
    transform:rotate(var(--tilt,0deg));
    transform-origin:var(--pinx,50%) 1.05rem;
    transition:transform .5s cubic-bezier(.3,1.45,.6,1), box-shadow .5s ease;}
:where(.hm) .pin{position:absolute;top:.44rem;left:var(--pinx,50%);
    transform:translateX(-50%);
    width:17px;height:17px;border-radius:50%;
    background:radial-gradient(circle at 34% 28%, #F2C096 0%, #C0754D 52%, #74422A 100%);
    box-shadow:0 1px 2px rgba(0,0,0,.6),0 7px 9px -3px rgba(0,0,0,.5);
    z-index:3;}
:where(.hm) .pin::after{content:"";position:absolute;left:6px;top:14px;
    width:1.5px;height:9px;
    background:linear-gradient(rgba(20,13,8,.4), rgba(20,13,8,0));
    transform:rotate(24deg);}
:where(.hm) .tape{position:absolute;width:5.4rem;height:1.5rem;
    background:linear-gradient(rgba(245,237,225,.28), rgba(245,237,225,.16));
    box-shadow:0 1px 2px rgba(0,0,0,.22);
    border-left:1px dashed rgba(245,237,225,.28);
    border-right:1px dashed rgba(245,237,225,.28);
    z-index:3;}
:where(.hm) .tape.tl{top:-.7rem;left:-1.6rem;transform:rotate(-38deg);}
:where(.hm) .tape.tr{top:-.7rem;right:-1.6rem;transform:rotate(38deg);}
:where(.hm) .tape.tc{top:-.72rem;left:50%;transform:translateX(-50%) rotate(-3deg);}
:where(.hm) .p-hub{left:50%;top:5.6%;width:14.5rem;margin-left:-7.25rem;--tilt:-1.3deg;--d:.05s;}
:where(.hm) .p-hub .paper{padding:1.35rem 1.15rem .95rem;}
:where(.hm) .p-hub .name{font-weight:700;font-size:1rem;letter-spacing:.01em;}
:where(.hm) .p-hub .role{font-size:.72rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--rust);margin-top:.2rem;}
:where(.hm) .p-hub hr,
:where(.hm) .file-card hr{border:none;border-top:1px solid rgba(51,38,27,.15);margin:.6rem 0 .55rem;}
:where(.hm) .p-hub .note{font-size:.7rem;letter-spacing:.06em;line-height:1.5;color:#6E5B49;}
:where(.hm) .member{width:clamp(14.5rem,16.5vw,17rem);}
:where(.hm) .p-carlos{left:6%;top:27%;--tilt:-2.7deg;--pinx:46%;--d:.42s;}
:where(.hm) .p-rita{right:6%;top:24.5%;--tilt:2.4deg;--pinx:55%;--d:.78s;}
:where(.hm) .p-mylene{left:41%;top:45%;--tilt:-1.7deg;--pinx:50%;--d:1.14s;}
:where(.hm) .file-card{padding:.9rem .9rem 1.05rem;}
:where(.hm) .file-tab{display:flex;align-items:center;gap:.5rem;
    padding:.5rem .15rem 0;
    font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
    color:var(--copper);}
:where(.hm) .file-tab .no{color:var(--rust);}
:where(.hm) .file-tab::after{content:"";flex:1;height:1px;background:rgba(51,38,27,.16);}
:where(.hm) .photo{position:relative;
    margin-top:.55rem;
    aspect-ratio:1/1.06;
    border-radius:.32rem;
    overflow:hidden;
    background:radial-gradient(120% 90% at 50% 16%, #4A3423 0%, #2B1F15 60%, #1F1710 100%);
    box-shadow:inset 0 0 2.4rem rgba(26,19,14,.55);}
:where(.hm) .photo img{display:block;width:100%;height:100%;
    object-fit:cover;
    object-position:var(--pos,50% 14%);
    transform:scale(var(--zoom,1.25));
    transform-origin:50% 18%;
    filter:sepia(.55) saturate(.68) hue-rotate(-8deg) contrast(1.06) brightness(1.01);
    transition:filter .45s ease;}
:where(.hm) .photo::after{content:"";position:absolute;inset:0;
    background:
      linear-gradient(to top, rgba(34,26,20,.55) 0%, rgba(34,26,20,0) 38%),
      radial-gradient(130% 100% at 50% 0%, rgba(34,26,20,0) 52%, rgba(26,19,14,.52) 100%);
    pointer-events:none;}
:where(.hm) .p-carlos .photo img{--pos:50% 50%;--zoom:1.0;}
:where(.hm) .p-rita   .photo img{--pos:50% 50%;--zoom:1.0;}
:where(.hm) .p-mylene .photo img{--pos:50% 50%;--zoom:1.0;}
:where(.hm) .p-rita .photo img{filter:sepia(.64) saturate(.56) hue-rotate(-8deg) contrast(1.06) brightness(1.02);}
:where(.hm) .p-rita:hover .photo img,
:where(.hm) .p-rita:focus-visible .photo img{filter:sepia(.42) saturate(.7) hue-rotate(-6deg) contrast(1.05) brightness(1.04);}
:where(.hm) .file-card .name{margin-top:.7rem;font-weight:700;font-size:.98rem;letter-spacing:.01em;}
:where(.hm) .file-card .role{font-size:.7rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--rust);margin-top:.18rem;}
:where(.hm) .file-card .spec{font-size:.74rem;letter-spacing:.02em;line-height:1.55;color:#6E5B49;margin-top:.15rem;}
:where(.hm) .member:hover .paper,
:where(.hm) .member:focus-visible .paper{transform:rotate(calc(var(--tilt,0deg) * .1)) translateY(-5px);
    box-shadow:0 30px 52px -18px rgba(0,0,0,.72),0 3px 8px rgba(0,0,0,.4);}
:where(.hm) .member:hover .photo img,
:where(.hm) .member:focus-visible .photo img{filter:sepia(.3) saturate(.85) hue-rotate(-6deg) contrast(1.05) brightness(1.03);}
:where(.hm) .p-label{left:3%;top:4.2%;width:11.6rem;--tilt:-2.2deg;--d:.1s;}
:where(.hm) .p-label .paper{padding:.85rem .95rem .8rem;}
:where(.hm) .p-label .head{font-size:.62rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--rust);}
:where(.hm) .p-label .sub{margin-top:.3rem;font-size:.68rem;letter-spacing:.07em;color:#6E5B49;line-height:1.45;}
:where(.hm) .p-scrap{left:4.5%;bottom:7%;width:12.4rem;--tilt:1.4deg;--d:1.3s;}
:where(.hm) .p-scrap .paper{padding:.7rem .9rem .65rem;}
:where(.hm) .p-scrap .sub{font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#6E5B49;line-height:1.6;}
:where(.hm) .p-scrap .sub b{color:var(--rust);font-weight:600;}
:where(.hm) .threads{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible;}
:where(.hm) .t-shadow{fill:none;stroke:rgba(18,12,7,.42);stroke-width:1.7;transform:translate(1px,1.8px);}
:where(.hm) .t-main{fill:none;stroke:var(--copper);stroke-width:1.7;opacity:.85;transition:stroke .25s ease,stroke-width .25s ease,filter .25s ease;}
:where(.hm) .t-main.hot{stroke:var(--peach);stroke-width:2.3;filter:drop-shadow(0 0 5px rgba(229,168,124,.55));}
:where(.hm) .t-knot{fill:#8F5433;transition:fill .25s ease;}
:where(.hm) .t-knot.hot{fill:var(--peach);}
:where(.hm) .board.anim .piece{opacity:0;}
:where(.hm) .board.anim .piece.on{opacity:1;animation:drop .55s cubic-bezier(.25,.9,.35,1) var(--d,0s) backwards;}
:where(.hm) .board.anim .piece.on .paper{animation:settle .7s cubic-bezier(.3,1.42,.58,1) calc(var(--d,0s) + .1s) backwards;}
:where(.hm) .board.anim .piece.on .pin{animation:pinpop .5s cubic-bezier(.34,1.8,.5,1) calc(var(--d,0s) + .34s) backwards;}
@keyframes drop{from{opacity:0;transform:translateY(-20px);}}
@keyframes settle{from{transform:translateY(-10px) rotate(calc(var(--tilt,0deg) + 4.5deg)) scale(1.05);}}
@keyframes pinpop{from{transform:translateX(-50%) scale(0);}}
@media (max-width:860px){
:where(.hm) .board{height:auto;display:flex;flex-direction:column;gap:1.55rem;
      padding:1.5rem 1rem 1.7rem;border-width:.5rem;}
:where(.hm) .piece{position:relative;left:auto;right:auto;top:auto;bottom:auto;margin:0;}
:where(.hm) .p-label{display:none;}
:where(.hm) .p-hub{order:0;align-self:center;width:13.5rem;margin-left:0;--tilt:-1.1deg;--d:.05s;}
:where(.hm) .p-carlos{order:1;align-self:flex-start;margin-left:2%;width:min(72%,15.5rem);--tilt:-2deg;--d:.12s;}
:where(.hm) .p-rita{order:2;align-self:flex-end;margin-right:2%;width:min(72%,15.5rem);--tilt:1.8deg;--d:.12s;}
:where(.hm) .p-mylene{order:3;align-self:flex-start;margin-left:7%;width:min(72%,15.5rem);--tilt:-1.5deg;--d:.12s;}
:where(.hm) .p-scrap{order:4;align-self:flex-end;margin-right:6%;width:11.6rem;--tilt:1.6deg;--d:.15s;}
}
@media (max-width:520px){
:where(.hm) .warroom{padding-left:.85rem;padding-right:.85rem;}
}
:where(.hm) #svc-ledger{position:relative;
  overflow:hidden;                    
  background:
    radial-gradient(72% 58% at 50% 42%, rgba(192,117,77,.085) 0%, rgba(192,117,77,0) 70%),
    var(--espresso);
  padding:clamp(3.4rem,7vh,6rem) clamp(.9rem,4vw,4rem) clamp(4rem,8vh,6.5rem);
  border-top:1px solid rgba(245,237,225,.07);}
:where(.hm) #svc-ledger .sl-stack{position:relative;
  max-width:min(var(--hm-shell-wide),100%);
  margin-inline:auto;}
:where(.hm) #svc-ledger .sl-stack::before{content:"";
  position:absolute;inset:0;
  border-radius:3px;
  background:#DCCDB4;
  transform:translate(4px,7px);
  box-shadow:0 20px 44px -26px rgba(0,0,0,.7);
  z-index:0;}
:where(.hm) #svc-ledger .sl-sheet{position:relative;
  z-index:1;
  border-radius:3px;
  color:#33261B;
  padding:clamp(1.4rem,3.2vw,3.2rem) clamp(1.15rem,3.2vw,3.4rem) clamp(1.6rem,3vw,2.6rem);
  background:
    radial-gradient(130% 70% at 8% 0%, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 58%),
    repeating-linear-gradient(96deg, rgba(34,26,20,.017) 0 2px, rgba(34,26,20,0) 2px 6px),
    linear-gradient(168deg,#F7EFE1 0%,#EFE3D0 44%,#E6D7BF 100%);
  box-shadow:
    0 1px 2px rgba(0,0,0,.28),
    0 26px 56px -24px rgba(0,0,0,.72),
    0 64px 120px -62px rgba(0,0,0,.6);}
:where(.hm) #svc-ledger .sl-sheet::before{content:"";
  position:absolute;inset:0;border-radius:3px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
  opacity:.05;
  pointer-events:none;}
:where(.hm) #svc-ledger .sl-sheet > *{position:relative;z-index:1;}
:where(.hm) #svc-ledger .sl-tape{display:none;}
:where(.hm) #svc-ledger .sl-titleblock{display:grid;
  gap:1.5rem clamp(1.5rem,3vw,3rem);
  padding-bottom:clamp(1.4rem,2.6vw,2.1rem);
  border-bottom:1px solid rgba(34,26,20,.2);}
:where(.hm) #svc-ledger .sl-eyebrow{display:flex;align-items:center;gap:.7rem;
  font-size:.72rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:#8F4022;
  margin-bottom:1rem;}
:where(.hm) #svc-ledger .sl-eyebrow::after{content:"";flex:none;display:block;
  width:2.4rem;height:1px;background:rgba(169,80,44,.55);}
:where(.hm) #svc-ledger .sl-h{font-size:clamp(1.72rem,3.1vw,2.75rem);
  font-weight:600;line-height:1.1;letter-spacing:-.017em;
  color:#33261B;
  max-width:19ch;                  
  text-wrap:balance;}
:where(.hm) #svc-ledger .sl-meta{display:flex;flex-wrap:wrap;gap:.55rem;
  align-content:start;}
:where(.hm) #svc-ledger .sl-meta > div{border:1px solid rgba(34,26,20,.24);
  border-radius:2px;
  padding:.5rem .85rem .55rem;
  min-width:6.6rem;
  background:rgba(255,255,255,.26);}
:where(.hm) #svc-ledger .sl-meta dt{font-size:.63rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(34,26,20,.74);
  line-height:1.3;}
:where(.hm) #svc-ledger .sl-meta dd{margin-top:.28rem;
  font-size:1.02rem;font-weight:600;line-height:1.15;
  letter-spacing:.01em;
  color:#33261B;
  font-variant-numeric:tabular-nums;}
:where(.hm) #svc-ledger .sl-grid{--nc:2.6rem;
  --gap:.95rem;
  --rulex:calc(var(--nc) + var(--gap) / 2);
  --ruleink:rgba(169,80,44,.24);
  position:relative;
  margin-top:clamp(1.5rem,2.6vw,2.2rem);}
:where(.hm) #svc-ledger .sl-grid::before,
:where(.hm) #svc-ledger .sl-grid::after{content:"";
  position:absolute;top:0;bottom:0;width:1px;
  background:linear-gradient(rgba(169,80,44,.34),rgba(169,80,44,.16));
  pointer-events:none;}
:where(.hm) #svc-ledger .sl-grid::before{left:calc(var(--rulex) - 2px);}
:where(.hm) #svc-ledger .sl-grid::after{left:calc(var(--rulex) + 2px);opacity:.55;}
:where(.hm) #svc-ledger .sl-colhead,
:where(.hm) #svc-ledger .sl-entry,
:where(.hm) #svc-ledger .sl-foot{display:grid;
  grid-template-columns:var(--nc) minmax(0,1fr);
  column-gap:var(--gap);
  align-items:baseline;}
:where(.hm) #svc-ledger .sl-colhead{padding-bottom:.6rem;
  border-bottom:1px solid rgba(169,80,44,.4);}
:where(.hm) #svc-ledger .sl-colhead span{font-size:.64rem;font-weight:700;
  letter-spacing:.19em;text-transform:uppercase;
  color:rgba(34,26,20,.74);
  line-height:1.4;}
:where(.hm) #svc-ledger .sl-body{list-style:none;margin:0;padding:0;}
:where(.hm) #svc-ledger .sl-entry{position:relative;
  padding-top:clamp(1.25rem,2.1vw,1.7rem);
  padding-bottom:.62rem;
  border-bottom:1px solid var(--ruleink);
  transition:background-color .18s ease;}
:where(.hm) #svc-ledger .sl-num{grid-column:1;grid-row:1;
  font-size:clamp(1.35rem,2.1vw,1.95rem);
  font-weight:300;line-height:1;
  letter-spacing:.005em;
  color:#8F4022;
  font-variant-numeric:tabular-nums;
  transition:color .18s ease;}
:where(.hm) #svc-ledger .sl-name{grid-column:2;grid-row:1;
  font-size:clamp(1.02rem,1.3vw,1.18rem);
  font-weight:600;line-height:1.3;letter-spacing:-.006em;
  color:#33261B;
  text-wrap:balance;}
:where(.hm) #svc-ledger .sl-desc{grid-column:2;grid-row:2;
  margin-top:.42rem;
  font-size:.92rem;font-weight:400;line-height:1.62;
  color:rgba(34,26,20,.74);
  max-width:50ch;                 
  text-wrap:pretty;}
:where(.hm) #svc-ledger .sl-go{grid-column:2;grid-row:3;
  justify-self:start;
  margin-top:.7rem;
  font-size:.71rem;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;
  color:#8F4022;
  text-decoration:none;
  white-space:nowrap;
  border-bottom:1px solid rgba(169,80,44,.42);
  padding-bottom:.16rem;
  transition:color .18s ease,border-color .18s ease;}
:where(.hm) #svc-ledger .sl-go::after{content:"";position:absolute;inset:0;}
:where(.hm) #svc-ledger .sl-entry:hover{background-color:rgba(169,80,44,.055);}
:where(.hm) #svc-ledger .sl-entry:hover .sl-go{color:#7A3419;border-bottom-color:#7A3419;}
:where(.hm) #svc-ledger .sl-entry:hover .sl-num{color:#7A3419;}
:where(.hm) #svc-ledger .sl-foot{margin-top:3px;
  padding-top:clamp(1.15rem,2vw,1.55rem);
  border-top:1px solid rgba(169,80,44,.4);}
:where(.hm) #svc-ledger .sl-foot .sl-see{grid-column:2;
  justify-self:start;
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:clamp(.9rem,1.1vw,1rem);font-weight:600;line-height:1.4;
  letter-spacing:.005em;
  color:#8F4022;
  text-decoration:none;
  border-bottom:1px solid rgba(169,80,44,.45);
  padding-bottom:.2rem;
  transition:color .18s ease,border-color .18s ease,gap .18s ease;}
:where(.hm) #svc-ledger .sl-foot .sl-see .sl-arrow{font-weight:400;line-height:1;}
:where(.hm) #svc-ledger .sl-foot .sl-see:hover{color:#7A3419;border-bottom-color:#7A3419;gap:.95rem;}
:where(.hm) #svc-ledger .sl-vh{position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0;}
@media (max-width:52.125rem){
:where(.hm) #svc-ledger .sl-foot .sl-see{min-height:44px;align-items:center;}
}
@media (max-width:39.999rem){
:where(.hm) #svc-ledger .sl-foot .sl-see{display:block;
    border-bottom:0;padding-bottom:0;
    text-decoration:underline;
    text-decoration-color:rgba(169,80,44,.45);
    text-decoration-thickness:1px;
    text-underline-offset:.28em;
    padding-block:.55rem;}
:where(.hm) #svc-ledger .sl-foot .sl-see .sl-arrow{display:none;}
:where(.hm) #svc-ledger .sl-foot .sl-see:hover{text-decoration-color:#7A3419;}
}
@media (min-width:40rem){
:where(.hm) #svc-ledger .sl-grid{--nc:3.4rem;--gap:1.4rem;}
:where(.hm) #svc-ledger .sl-colhead,
:where(.hm) #svc-ledger .sl-entry,
:where(.hm) #svc-ledger .sl-foot{grid-template-columns:var(--nc) minmax(0,1fr) auto;}
:where(.hm) #svc-ledger .sl-go{grid-column:3;grid-row:1;
    justify-self:end;
    margin-top:0;}
:where(.hm) #svc-ledger .sl-stack::before{transform:rotate(1.05deg);}
:where(.hm) #svc-ledger .sl-titleblock{grid-template-columns:minmax(0,1fr) auto;
    align-items:end;}
:where(.hm) #svc-ledger .sl-meta{justify-content:flex-end;}
}
@media (min-width:56rem){
:where(.hm) #svc-ledger .sl-sheet{transform:rotate(-.4deg);}
:where(.hm) #svc-ledger .sl-stack::before{transform:rotate(1.15deg);}
:where(.hm) #svc-ledger .sl-grid{--nc:4.4rem;--gap:1.9rem;--rc:9rem;}
:where(.hm) #svc-ledger .sl-colhead,
:where(.hm) #svc-ledger .sl-entry,
:where(.hm) #svc-ledger .sl-foot{grid-template-columns:var(--nc) minmax(10rem,20rem) minmax(0,1fr) var(--rc);
    column-gap:var(--gap);}
:where(.hm) #svc-ledger .sl-grid{background-image:linear-gradient(rgba(169,80,44,.3),rgba(169,80,44,.14));
    background-size:1px 100%;
    background-position:right calc(var(--rc) + var(--gap) / 2) top;
    background-repeat:no-repeat;}
:where(.hm) #svc-ledger .sl-name{grid-column:2;grid-row:1;}
:where(.hm) #svc-ledger .sl-desc{grid-column:3;grid-row:1;
    margin-top:0;
    padding-left:clamp(1.4rem,2.4vw,2.6rem);}
:where(.hm) #svc-ledger .sl-go{grid-column:4;grid-row:1;justify-self:start;}
:where(.hm) #svc-ledger .sl-foot .sl-see{grid-column:2 / -1;}
:where(.hm) #svc-ledger .sl-entry{padding-top:clamp(1.5rem,2.1vw,1.85rem);}
}
@media (min-width:64rem){
:where(.hm) #svc-ledger .sl-tape{display:block;position:absolute;
    width:5.6rem;height:1.45rem;
    background:linear-gradient(rgba(245,237,225,.34),rgba(245,237,225,.2));
    border-left:1px dashed rgba(245,237,225,.3);
    border-right:1px dashed rgba(245,237,225,.3);
    box-shadow:0 2px 4px rgba(0,0,0,.3);
    z-index:2;
    pointer-events:none;}
:where(.hm) #svc-ledger .sl-tape.tl{top:-.62rem;left:-1.5rem;transform:rotate(-38deg);}
:where(.hm) #svc-ledger .sl-tape.tr{top:-.62rem;right:-1.5rem;transform:rotate(38deg);}
}
@media (prefers-reduced-motion:no-preference){
:where(.hm) #svc-ledger .sl-stack{opacity:0;
    animation:sl-lay .5s cubic-bezier(.2,.7,.3,1) both;}
:where(.hm) #svc-ledger .sl-entry{opacity:0;
    animation:sl-line .45s cubic-bezier(.2,.7,.3,1) both;}
:where(.hm) #svc-ledger .sl-entry:nth-child(1){animation-delay:.12s;}
:where(.hm) #svc-ledger .sl-entry:nth-child(2){animation-delay:.18s;}
:where(.hm) #svc-ledger .sl-entry:nth-child(3){animation-delay:.24s;}
:where(.hm) #svc-ledger .sl-entry:nth-child(4){animation-delay:.30s;}
:where(.hm) #svc-ledger .sl-entry:nth-child(5){animation-delay:.36s;}
@keyframes sl-lay{from{opacity:0;transform:translateY(14px) scale(.994);}
    to{opacity:1;transform:none;}}
@keyframes sl-line{from{opacity:0;transform:translateY(9px);}
    to{opacity:1;transform:none;}}
}
:root{--ws-ink:#33261B;
  --ws-ink-mute:rgba(34,26,20,.74);
  --ws-seal-ink:#8F4022;
  --ws-shell:var(--hm-shell);}
:where(.hm) .ws-band{position:relative; overflow:hidden;}
:where(.hm) .ws-shell{max-width:var(--ws-shell);
  margin-inline:auto;
  padding-inline:var(--hm-gutter);
  position:relative;
  z-index:1;}
:where(.hm) .ws-band-thesis{padding-block:clamp(3.5rem,7.5vw,6.75rem);
  border-top:1px solid rgba(192,117,77,.16);
  background:
    radial-gradient(78% 62% at 20% 4%, rgba(192,117,77,.11) 0%, rgba(192,117,77,0) 62%),
    linear-gradient(rgba(192,117,77,.05) 1px, transparent 1px) 0 0/96px 96px,
    linear-gradient(90deg, rgba(192,117,77,.05) 1px, transparent 1px) 0 0/96px 96px,
    var(--espresso);}
:where(.hm) .ws-band-why{padding-block:clamp(3.5rem,7.5vw,6.5rem) clamp(3.75rem,8vw,7rem);
  border-top:1px solid rgba(192,117,77,.2);
  background:
    radial-gradient(64% 48% at 50% 6%, rgba(192,117,77,.08) 0%, rgba(192,117,77,0) 68%),
    var(--espresso-deep);}
:where(.hm) .ws-slug{display:flex; align-items:center; gap:.9rem;}
:where(.hm) .ws-slug-l{font-size:.76rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--peach);
  white-space:nowrap;}
:where(.hm) .ws-slug-rule{flex:1 1 auto; min-width:1.5rem; height:1px;
  background:linear-gradient(90deg, rgba(192,117,77,.6) 0%, rgba(192,117,77,.14) 100%);}
:where(.hm) .ws-slug-mark{flex:none; width:.5rem; height:.5rem;
  border:1px solid var(--copper);
  transform:rotate(45deg);}
:where(.hm) .ws-thesis-grid{margin-top:clamp(1.9rem,3vw,2.9rem);
  display:grid;
  gap:clamp(1.5rem,3vw,3.5rem);}
:where(.hm) .ws-thesis{font-size:clamp(2.05rem,5vw,3.85rem);
  font-weight:300;
  line-height:1.08;
  letter-spacing:-.024em;
  color:var(--bone);
  max-width:24ch;          
  text-wrap:pretty;}
:where(.hm) .ws-thesis em{font-style:normal;
  font-weight:500;
  color:var(--peach);}
:where(.hm) .ws-note{border-top:1px solid rgba(192,117,77,.28);
  padding-top:1.35rem;}
:where(.hm) .ws-note p{color:var(--taupe);
  font-size:clamp(.98rem,1.15vw,1.06rem);
  font-weight:300;
  line-height:1.75;
  max-width:50ch;          
  text-wrap:pretty;}
:where(.hm) .ws-scale{margin-top:clamp(2.1rem,4vw,3.2rem);
  height:.5rem;
  border-top:1px solid rgba(192,117,77,.26);
  background-image:repeating-linear-gradient(90deg,
    rgba(192,117,77,.34) 0 1px, rgba(192,117,77,0) 1px 5.5rem);
  background-repeat:no-repeat;
  background-size:100% .42rem;}
@media (min-width:62rem){
:where(.hm) .ws-thesis-grid{grid-template-columns:minmax(0,1.28fr) minmax(0,.72fr);
    align-items:start;}
:where(.hm) .ws-note{border-top:none;
    border-left:1px solid rgba(192,117,77,.28);
    padding-top:.6rem;
    padding-left:clamp(1.6rem,2.6vw,2.6rem);}
}
:where(.hm) .ws-why-head{margin-top:clamp(1.9rem,3vw,2.9rem);
  display:grid;
  gap:clamp(1.25rem,2.6vw,3.2rem);}
:where(.hm) .ws-why-head h2{font-size:clamp(1.7rem,3.2vw,2.7rem);
  font-weight:500;
  line-height:1.14;
  letter-spacing:-.016em;
  color:var(--bone);
  max-width:20ch;
  text-wrap:balance;}
:where(.hm) .ws-lede{border-top:1px solid rgba(192,117,77,.28);
  padding-top:1.35rem;}
:where(.hm) .ws-lede p{color:var(--taupe);
  font-size:clamp(.98rem,1.15vw,1.06rem);
  font-weight:300;
  line-height:1.72;
  max-width:50ch;
  text-wrap:pretty;}
:where(.hm) .ws-lede strong{color:var(--bone); font-weight:500;}
@media (min-width:44rem) and (max-width:61.999rem){
:where(.hm) .ws-note p,
:where(.hm) .ws-lede p{margin-left:auto;}
}
@media (min-width:62rem){
:where(.hm) .ws-why-head{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
    align-items:end;}
:where(.hm) .ws-lede{border-top:none;
    border-left:1px solid rgba(192,117,77,.28);
    padding-top:.1rem;
    padding-left:clamp(1.6rem,2.6vw,2.6rem);}
}
:where(.hm) .ws-chit-field{position:relative;
  margin-top:clamp(2.1rem,4vw,3.4rem);}
:where(.hm) .ws-chits{position:relative;
  z-index:1;
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:clamp(1.05rem,1.9vw,1.9rem);}
:where(.hm) .ws-chit{position:relative;
  display:flex;
  flex-direction:column;
  min-height:10.25rem;
  padding:1.4rem 1.45rem 1.15rem 2.05rem;
  border-radius:3px;
  color:var(--ws-ink);
  background:linear-gradient(162deg, var(--bone) 0%, var(--parchment) 100%);
  box-shadow:
    0 18px 38px -18px rgba(0,0,0,.62),
    0 2px 5px rgba(0,0,0,.3);
  transform:rotate(var(--t,0deg));
  transition:transform .3s ease, box-shadow .3s ease;
  animation:ws-rise .44s cubic-bezier(.22,1,.36,1) var(--d,0s) backwards;}
:where(.hm) .ws-chit::before{content:"";
  position:absolute; inset:0;
  border-radius:3px;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='pfn'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23pfn)' opacity='0.55'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
  opacity:.4;}
:where(.hm) .ws-chit::after{content:"";
  position:absolute;
  left:1.05rem; top:.95rem; bottom:.95rem;
  width:1px;
  background:repeating-linear-gradient(to bottom,
    rgba(143,64,34,.42) 0 4px, rgba(143,64,34,0) 4px 9px);}
:where(.hm) .ws-chit > *{position:relative; z-index:1;}
:where(.hm) .ws-chit p{flex:1 1 auto;
  margin:0;
  font-size:clamp(1rem,1.05vw,1.1rem);
  font-weight:500;
  line-height:1.5;
  letter-spacing:-.005em;
  color:var(--ws-ink);
  max-width:50ch;
  text-wrap:pretty;}
:where(.hm) .ws-foot{display:flex;
  align-items:center;
  gap:.85rem;
  margin-top:1.15rem;}
:where(.hm) .ws-foot-rule{flex:1 1 auto;
  height:1px;
  background:linear-gradient(90deg, rgba(34,26,20,.24) 0%, rgba(34,26,20,.07) 100%);}
:where(.hm) .ws-seal{position:relative;
  flex:none;
  width:2.8rem; height:2.8rem;
  display:grid; place-items:center;
  border-radius:50%;
  border:1.5px solid rgba(143,64,34,.5);
  background:radial-gradient(circle at 38% 32%,
    rgba(169,80,44,.12) 0%, rgba(169,80,44,.03) 58%, rgba(169,80,44,.09) 100%);
  color:var(--ws-seal-ink);
  font-size:.68rem; font-weight:700; letter-spacing:.06em;
  font-variant-numeric:tabular-nums;
  transform:rotate(-11deg);
  mix-blend-mode:multiply;
  opacity:.94;}
:where(.hm) .ws-seal::before{content:"";
  position:absolute; inset:.22rem;
  border-radius:50%;
  border:1px dashed rgba(143,64,34,.36);}
:where(.hm) .ws-chit:nth-child(1){--t:-1.4deg; --th:-.5deg;  --d:.04s;}
:where(.hm) .ws-chit:nth-child(2){--t:1.1deg;  --th:.4deg;   --d:.13s;}
:where(.hm) .ws-chit:nth-child(3){--t:-.9deg;  --th:-.3deg;  --d:.22s;}
:where(.hm) .ws-chit:nth-child(4){--t:1.25deg; --th:.45deg;  --d:.31s;}
:where(.hm) .ws-chit:nth-child(5){--t:-1.1deg; --th:-.4deg;  --d:.40s;}
@media (hover:hover){
:where(.hm) .ws-chit:hover{transform:rotate(var(--th,0deg)) translateY(-3px);
    box-shadow:
      0 26px 46px -20px rgba(0,0,0,.68),
      0 3px 7px rgba(0,0,0,.3);}
}
@media (min-width:34rem){
:where(.hm) .ws-chits{grid-template-columns:repeat(2,minmax(0,1fr));}
:where(.hm) .ws-chit:nth-child(5){grid-column:span 2;}
}
@media (min-width:76rem){
:where(.hm) .ws-chits{grid-template-columns:repeat(6,minmax(0,1fr));}
:where(.hm) .ws-chit{grid-column:span 2;}
:where(.hm) .ws-chit:nth-child(4){grid-column:1 / span 3;}
:where(.hm) .ws-chit:nth-child(5){grid-column:4 / span 3;}
}
@media (max-width:34rem){
:where(.hm) .ws-chit{min-height:0;
    padding:1.25rem 1.2rem 1rem 1.8rem;}
:where(.hm) .ws-chit::after{left:.9rem;}
:where(.hm) .ws-chit:nth-child(odd){--t:-.55deg; --th:-.2deg;}
:where(.hm) .ws-chit:nth-child(even){--t:.55deg;  --th:.2deg;}
}
@media (max-width:26rem){
:where(.hm) .ws-slug-l{font-size:.68rem; letter-spacing:.14em;}
:where(.hm) .ws-slug{gap:.65rem;}
}
@keyframes ws-rise{from{ opacity:0; transform:translateY(18px) rotate(var(--t,0deg)); }}
@keyframes ws-fade{from{ opacity:0; transform:translateY(14px); }}
:where(.hm) .ws-anim{animation:ws-fade .5s cubic-bezier(.22,1,.36,1) backwards;}
:where(.hm) .ws-anim-2{animation-delay:.1s;}
:where(.hm) .ws-anim-3{animation-delay:.2s;}
@media (prefers-reduced-motion:reduce){
:where(.hm) .ws-anim,
:where(.hm) .ws-chit{animation:none !important;}
:where(.hm) .ws-chit{transition:none !important;}
}
:where(.hm) .wr-ax{position:relative;
  font-family:"Bricolage Grotesque",system-ui,sans-serif;
  color:var(--bone);
  background:
    radial-gradient(52% 58% at 72% 44%, rgba(192,117,77,.10) 0%, rgba(192,117,77,0) 70%),
    var(--espresso);
  border-top:1px solid rgba(245,237,225,.07);
  padding-block:clamp(3.2rem,6vw,5.5rem);
  padding-inline:clamp(1.25rem,4.5vw,3rem);
  
  overflow:hidden;}
:where(.hm) .wr-ax *{box-sizing:border-box;}
:where(.hm) .wr-ax__inner{width:100%;
  
  max-width:var(--hm-shell-wide);
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(2rem,4vw,4.5rem);
  align-items:stretch;}
:where(.hm) .wr-ax__rail{position:relative;
  min-width:0;
  padding-left:clamp(1.15rem,1.9vw,2.3rem);
  display:flex;
  flex-direction:column;
  
  justify-content:flex-start;
  padding-top:.3rem;}
:where(.hm) .wr-ax__rail::before{content:"";
  position:absolute;left:0;top:0;bottom:0;width:1px;
  background:linear-gradient(180deg,
    rgba(192,117,77,0)   0%,
    rgba(192,117,77,.62) 5%,
    rgba(192,117,77,.34) 46%,
    rgba(192,117,77,.18) 100%);}
:where(.hm) .wr-ax__rail::after{content:"";
  position:absolute;left:-1px;top:0;
  width:3px;height:3.1rem;
  background:var(--copper);}
:where(.hm) .wr-ax__eyebrow{display:flex;align-items:center;gap:.75rem;
  margin:0 0 1.15rem;
  font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--peach);}
:where(.hm) .wr-ax__eyebrow::after{content:"";height:1px;flex:1 1 auto;max-width:8rem;
  background:linear-gradient(90deg,rgba(192,117,77,.75),rgba(192,117,77,0));}
:where(.hm) .wr-ax__h{margin:0;
  font-size:clamp(2.15rem,3.1vw,3.9rem);
  font-weight:600;
  line-height:1.06;
  letter-spacing:-.022em;
  text-wrap:balance;}
:where(.hm) .wr-ax__h .turn{color:var(--peach);}
:where(.hm) .wr-ax__lede{margin:clamp(1.15rem,1.6vw,1.7rem) 0 0;
  
  max-width:44ch;
  font-size:clamp(1rem,1.05vw,1.12rem);
  font-weight:300;line-height:1.72;
  color:var(--taupe);
  text-wrap:pretty;}
:where(.hm) .wr-ax__lede strong{color:var(--bone);font-weight:500;}
:where(.hm) .wr-ax__titleblock{position:absolute;
  left:clamp(1.15rem,1.9vw,2.3rem);
  right:0;bottom:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:end;
  gap:0 clamp(1.1rem,2vw,2rem);
  padding-top:clamp(.85rem,1.2vw,1.15rem);
  border-top:1px solid rgba(192,117,77,.34);}
:where(.hm) .wr-ax__num{font-size:clamp(3rem,5vw,6.2rem);
  font-weight:700;line-height:.78;letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;
  color:rgba(192,117,77,.05);
  -webkit-text-stroke:1.5px rgba(192,117,77,.45);
  user-select:none;}
:where(.hm) .wr-ax__serving{margin:0 0 .35rem;
  padding-left:clamp(1.1rem,2vw,2rem);
  border-left:1px solid rgba(192,117,77,.3);
  min-width:0;}
:where(.hm) .wr-ax__servingk{display:block;
  font-size:.62rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--peach);}
:where(.hm) .wr-ax__servingv{display:block;margin-top:.3rem;
  font-size:clamp(.82rem,.92vw,.95rem);font-weight:500;
  letter-spacing:.015em;line-height:1.45;
  color:var(--bone);
  text-wrap:balance;}
:where(.hm) .wr-ax__board{position:relative;
  min-width:0;
  height:clamp(43rem,47vw,47rem);
  border:.6rem solid #1B130D;
  border-radius:.9rem;
  background:linear-gradient(158deg,#3D2D1E 0%,#352819 52%,#2C2013 100%);
  box-shadow:
    inset 0 2px 10px rgba(0,0,0,.55),
    inset 0 -1px 3px rgba(245,237,225,.05),
    0 46px 90px -38px rgba(0,0,0,.75),
    0 0 0 1px rgba(245,237,225,.06);}
:where(.hm) .wr-ax__board::before{content:"";position:absolute;inset:0;border-radius:.35rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;opacity:.55;pointer-events:none;}
:where(.hm) .wr-ax__board::after{content:"";position:absolute;inset:0;border-radius:.35rem;
  background-image:
    radial-gradient(rgba(245,237,225,.045) 1px, transparent 1.5px),
    radial-gradient(rgba(20,13,8,.5) 1px, transparent 1.6px),
    radial-gradient(58% 48% at 44% 26%, rgba(229,168,124,.055), transparent 72%);
  background-size:190px 170px, 233px 209px, 100% 100%;
  background-position:0 0, 71px 53px, 0 0;
  pointer-events:none;}
:where(.hm) .wr-ax__piece{position:absolute;z-index:2;
  display:block;color:inherit;text-decoration:none;
  animation:wrax-drop .48s cubic-bezier(.25,.9,.35,1) var(--d,0s) backwards;}
:where(.hm) .wr-ax__paper{position:relative;
  background:linear-gradient(163deg,var(--bone) 0%,var(--parchment) 100%);
  color:#33261B;
  border-radius:.45rem;
  box-shadow:0 18px 38px -16px rgba(0,0,0,.65), 0 2px 6px rgba(0,0,0,.35);
  transform:rotate(var(--tilt,0deg));
  transform-origin:var(--pinx,50%) 1.05rem;   
  transition:transform .45s cubic-bezier(.3,1.4,.6,1), box-shadow .45s ease;
  animation:wrax-settle .5s cubic-bezier(.3,1.42,.58,1) calc(var(--d,0s) + .08s) backwards;}
:where(.hm) .wr-ax__pin{position:absolute;top:.44rem;left:var(--pinx,50%);
  transform:translateX(-50%);
  width:17px;height:17px;border-radius:50%;
  background:radial-gradient(circle at 34% 28%, #F2C096 0%, #C0754D 52%, #74422A 100%);
  box-shadow:0 1px 2px rgba(0,0,0,.6), 0 7px 9px -3px rgba(0,0,0,.5);
  z-index:3;
  animation:wrax-pin .36s cubic-bezier(.34,1.8,.5,1) calc(var(--d,0s) + .2s) backwards;}
:where(.hm) .wr-ax__pin::after{content:"";position:absolute;left:6px;top:14px;
  width:1.5px;height:9px;
  background:linear-gradient(rgba(20,13,8,.4), rgba(20,13,8,0));
  transform:rotate(24deg);}
:where(.hm) .wr-ax__tape{position:absolute;width:4.9rem;height:1.35rem;
  background:linear-gradient(rgba(245,237,225,.34), rgba(245,237,225,.19));
  box-shadow:0 1px 2px rgba(0,0,0,.24);
  border-left:1px dashed rgba(245,237,225,.3);
  border-right:1px dashed rgba(245,237,225,.3);
  z-index:3;}
:where(.hm) .wr-ax__tape--tl{top:-.4rem;left:-1rem;transform:rotate(-38deg);}
:where(.hm) .wr-ax__hub{left:5%;top:5.5%;width:30%;
  --tilt:-1.4deg;--pinx:50%;--d:.04s;}
:where(.hm) .wr-ax__hub .wr-ax__paper{padding:clamp(.95rem,1.5vw,1.4rem) clamp(.85rem,1.4vw,1.3rem) clamp(.8rem,1.2vw,1.05rem);}
:where(.hm) .wr-ax__hubname{margin:.15rem 0 0;
  font-size:clamp(.86rem,.95vw,1.05rem);font-weight:700;letter-spacing:.005em;
  line-height:1.25;overflow-wrap:break-word;}
:where(.hm) .wr-ax__hubrole{margin:.22rem 0 0;
  font-size:clamp(.6rem,.68vw,.72rem);font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;line-height:1.35;
  color:var(--rust-hover);}
:where(.hm) .wr-ax__hubnote{margin:.5rem 0 0;
  font-size:clamp(.63rem,.72vw,.75rem);letter-spacing:.045em;line-height:1.5;
  color:rgba(34,26,20,.74);}
:where(.hm) .wr-ax__hr{border:0;border-top:1px solid rgba(51,38,27,.16);
  margin:.6rem 0 .5rem;}
:where(.hm) .wr-ax__file{width:30.5%;}
:where(.hm) .wr-ax__file--1{left:2%;   top:34%;  --tilt:-2.4deg;--pinx:46%;--d:.12s;}
:where(.hm) .wr-ax__file--2{left:34.75%;top:38.5%;--tilt:1.6deg; --pinx:52%;--d:.20s;}
:where(.hm) .wr-ax__file--3{left:67.5%; top:32.5%;--tilt:-1.5deg;--pinx:48%;--d:.28s;}
:where(.hm) .wr-ax__card{padding:clamp(.7rem,1vw,.95rem) clamp(.7rem,1vw,.95rem) clamp(.85rem,1.15vw,1.1rem);}
:where(.hm) .wr-ax__tab{display:flex;align-items:center;gap:.55rem;
  margin:0;padding:.45rem .1rem 0;
  font-size:clamp(.55rem,.62vw,.64rem);font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--rust-hover);}
:where(.hm) .wr-ax__tab::after{content:"";flex:1 1 auto;height:1px;background:rgba(51,38,27,.18);}
:where(.hm) .wr-ax__photo{position:relative;
  margin-top:.55rem;
  aspect-ratio:1/1;
  border-radius:.3rem;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 16%, #4A3423 0%, #2B1F15 60%, #1F1710 100%);
  box-shadow:inset 0 0 2.4rem rgba(26,19,14,.55);}
:where(.hm) .wr-ax__photo img{display:block;width:100%;height:100%;
  object-fit:cover;object-position:50% 50%;
  filter:sepia(.55) saturate(.68) hue-rotate(-8deg) contrast(1.06) brightness(1.01);
  transition:filter .4s ease;}
:where(.hm) .wr-ax__photo::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(to top, rgba(34,26,20,.5) 0%, rgba(34,26,20,0) 38%),
    radial-gradient(130% 100% at 50% 0%, rgba(34,26,20,0) 52%, rgba(26,19,14,.5) 100%);
  pointer-events:none;}
:where(.hm) .wr-ax__name{margin:.7rem 0 0;
  font-size:clamp(.88rem,.98vw,1.02rem);font-weight:700;letter-spacing:.005em;
  line-height:1.25;overflow-wrap:break-word;}
:where(.hm) .wr-ax__role{margin:.2rem 0 0;
  font-size:clamp(.6rem,.68vw,.72rem);font-weight:600;
  letter-spacing:.085em;text-transform:uppercase;line-height:1.35;
  color:var(--rust-hover);}
:where(.hm) .wr-ax__spec{margin:0;
  font-size:clamp(.66rem,.74vw,.78rem);letter-spacing:.012em;line-height:1.55;
  color:rgba(34,26,20,.74);}
:where(.hm) .wr-ax__file:hover .wr-ax__paper,
:where(.hm) .wr-ax__file:focus-visible .wr-ax__paper{transform:rotate(calc(var(--tilt,0deg) * .12)) translateY(-6px);
  box-shadow:0 30px 52px -18px rgba(0,0,0,.72), 0 3px 8px rgba(0,0,0,.4);}
:where(.hm) .wr-ax__file:hover .wr-ax__photo img,
:where(.hm) .wr-ax__file:focus-visible .wr-ax__photo img{filter:sepia(.3) saturate(.85) hue-rotate(-6deg) contrast(1.05) brightness(1.03);}
:where(.hm) .wr-ax__file:focus-visible{outline:2px solid var(--dusk);outline-offset:6px;border-radius:.5rem;}
:where(.hm) .wr-ax__threads{position:absolute;inset:0;width:100%;height:100%;
  
  z-index:1;pointer-events:none;overflow:visible;}
:where(.hm) .wr-ax__threads path{vector-effect:non-scaling-stroke;fill:none;}
:where(.hm) .wr-ax__tshadow path{stroke:rgba(18,12,7,.45);stroke-width:1.7;}
:where(.hm) .wr-ax__thread{stroke:var(--copper);stroke-width:1.7;opacity:.88;
  
  transition:stroke .22s ease, stroke-width .22s ease, filter .22s ease;
  animation:wrax-draw .42s ease .3s backwards;}
:where(.hm) .wr-ax__board:has(.wr-ax__file--1:hover) .wr-ax__thread--1,
:where(.hm) .wr-ax__board:has(.wr-ax__file--1:focus-visible) .wr-ax__thread--1,
:where(.hm) .wr-ax__board:has(.wr-ax__file--2:hover) .wr-ax__thread--2,
:where(.hm) .wr-ax__board:has(.wr-ax__file--2:focus-visible) .wr-ax__thread--2,
:where(.hm) .wr-ax__board:has(.wr-ax__file--3:hover) .wr-ax__thread--3,
:where(.hm) .wr-ax__board:has(.wr-ax__file--3:focus-visible) .wr-ax__thread--3{stroke:var(--peach);stroke-width:2.4;opacity:1;
  filter:drop-shadow(0 0 5px rgba(229,168,124,.5));}
:where(.hm) .wr-ax__spine{display:none;}
@keyframes wrax-drop{from{opacity:0;transform:translateY(-14px);}}
@keyframes wrax-settle{from{transform:translateY(-8px) rotate(calc(var(--tilt,0deg) + 4deg)) scale(1.04);}}
@keyframes wrax-pin{from{transform:translateX(-50%) scale(0);}}
@keyframes wrax-draw{from{opacity:0;}}
@media (max-width:1239.98px){
:where(.hm) .wr-ax__inner{grid-template-columns:minmax(0,1fr);
    gap:clamp(2.2rem,5vw,3.2rem);
    
    max-width:46rem;}
:where(.hm) .wr-ax__rail{justify-content:flex-start;}
:where(.hm) .wr-ax__h{max-width:26ch;}
:where(.hm) .wr-ax__titleblock{position:static;
    margin-top:clamp(1.8rem,4vw,2.5rem);
    padding-top:clamp(.8rem,2vw,1.1rem);}
:where(.hm) .wr-ax__num{font-size:clamp(2.9rem,10vw,4.4rem);}
:where(.hm) .wr-ax__board{height:auto;
    display:flex;flex-direction:column;align-items:center;
    gap:clamp(1.2rem,2.6vw,1.7rem);
    padding:clamp(1.4rem,3vw,2rem) 1rem clamp(1.6rem,3.4vw,2.2rem);
    border-width:.5rem;}
:where(.hm) .wr-ax__piece{position:static;
    
    width:min(80%,19rem);}
:where(.hm) .wr-ax__hub{width:min(72%,16.5rem);--tilt:-1.2deg;}
:where(.hm) .wr-ax__file--1{transform:translateX(-4%);--tilt:-2deg;}
:where(.hm) .wr-ax__file--2{transform:translateX(5%); --tilt:1.6deg;}
:where(.hm) .wr-ax__file--3{transform:translateX(-3%);--tilt:-1.4deg;}
:where(.hm) .wr-ax__threads{display:none;}
:where(.hm) .wr-ax__spine{display:block;position:absolute;
    left:50%;top:3.5rem;bottom:3.5rem;width:1px;
    background:linear-gradient(180deg,
      rgba(192,117,77,0) 0%,
      rgba(192,117,77,.75) 8%,
      rgba(192,117,77,.75) 88%,
      rgba(192,117,77,0) 100%);
    z-index:1;pointer-events:none;}
:where(.hm) .wr-ax__file:hover .wr-ax__paper,
:where(.hm) .wr-ax__file:focus-visible .wr-ax__paper{transform:translateY(-4px) rotate(calc(var(--tilt,0deg) * .12));}
}
@media (max-width:520px){
:where(.hm) .wr-ax__piece{width:min(86%,17rem);}
:where(.hm) .wr-ax__hub{width:min(80%,15rem);}
:where(.hm) .wr-ax__file--1{transform:translateX(-2.5%);}
:where(.hm) .wr-ax__file--2{transform:translateX(3%);}
:where(.hm) .wr-ax__file--3{transform:translateX(-2%);}
:where(.hm) .wr-ax__eyebrow::after{max-width:4rem;}
}


/* ==================================================================
   CPE COURSES (cpe-course-offerings.html) - folded from inline <style>
   in cycle 2. Scoped under :where(.cp) (specificity-neutral); root-level
   rules use html:has(.cp)/.cp; :root tokens (--cp-*) global; the page's
   'rise' keyframe was renamed 'cp-rise' to avoid colliding with home's.
   ================================================================== */
:root{--cp-shell:clamp(56rem, 82vw, 80rem); --cp-gutter:clamp(1.25rem,4.5vw,3rem);}
@media (prefers-reduced-motion:no-preference){
html:has(.cp){scroll-behavior:smooth;}
}
html:has(.cp),
.cp{overflow-x:clip;}
:where(.cp) .skip-link{position:absolute;top:.6rem;left:.6rem;z-index:10;
    background:var(--espresso-deep);color:var(--bone);
    font-size:.85rem;font-weight:500;letter-spacing:.03em;
    padding:.55rem 1rem;border-radius:.4rem;
    text-decoration:none;
    transform:translateY(-300%);}
:where(.cp) .skip-link:focus-visible{transform:none;}
:where(.cp) .site-header{position:relative;
    background:var(--espresso);
    border-bottom:1px solid rgba(245,237,225,.09);}
:where(.cp) .utility{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
    padding:.4rem clamp(1.25rem,4.5vw,4rem);
    border-bottom:1px solid rgba(245,237,225,.09);
    font-size:.85rem;}
:where(.cp) .utility a{line-height:1.2;
    padding:.5rem .1rem;}
:where(.cp) .masthead{display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:clamp(1.2rem,2.5vw,2.5rem);
    padding:1.1rem clamp(1.25rem,4.5vw,4rem) 1.25rem;
    background:radial-gradient(46% 130% at 50% 0%, rgba(192,117,77,.09) 0%, rgba(192,117,77,0) 72%);}
:where(.cp) .nav-group{display:flex;align-items:center;gap:clamp(1rem,2.2vw,2rem);
    white-space:nowrap;}
:where(.cp) .nav-group.left{justify-self:end;}
:where(.cp) .nav-group.right{justify-self:start;}
:where(.cp) .nav-group a[aria-current="page"]{color:var(--bone);
    text-decoration:underline;
    text-decoration-color:var(--copper);
    text-decoration-thickness:1px;
    text-underline-offset:.5em;}
:where(.cp) .logo-link{display:block;line-height:0;
    transition:transform .25s ease;}
:where(.cp) .logo-link:hover{transform:translateY(-2px);}
:where(.cp) .logo-link img{width:clamp(6.5rem,9vw,8rem);
    height:auto;
    filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));}
@media (max-width:1080px){
:where(.cp) .masthead{display:flex;flex-wrap:wrap;
      justify-content:center;align-items:center;
      gap:.15rem 1.1rem;
      padding-top:1.5rem;padding-bottom:1rem;}
:where(.cp) .logo-link{flex:0 0 100%;order:-1;text-align:center;margin-bottom:.7rem;}
:where(.cp) .nav-group{display:contents;}
:where(.cp) .nav-group a{font-size:.78rem;}
}
@media (max-width:520px){
:where(.cp) .utility{justify-content:center;flex-wrap:wrap;
      gap:0 1.1rem;
      padding-top:.3rem;padding-bottom:.3rem;}
:where(.cp) .masthead{gap:.1rem .9rem;}
:where(.cp) .logo-link img{width:6.5rem;}
}
:where(.cp) .band{padding:clamp(3.5rem,9vh,5.75rem) clamp(1.25rem,4.5vw,4rem);}
:where(.cp) .band-inner{max-width:var(--cp-shell);margin:0 auto;}
:where(.cp) section[id]{scroll-margin-top:1.25rem;}
:where(.cp) .eyebrow{display:inline-flex;align-items:center;gap:.65rem;
    font-size:.78rem;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--peach);
    margin-bottom:1.4rem;}
:where(.cp) .eyebrow::before{content:"";display:block;width:2.2rem;height:1px;background:var(--copper);}
:where(.cp) h2{font-size:clamp(1.55rem,3vw,2.35rem);
    font-weight:600;
    line-height:1.18;
    letter-spacing:-.01em;
    max-width:28ch;}
:where(.cp) h2 .turn{color:var(--peach);}
:where(.cp) .lede{margin-top:1.1rem;
    font-size:clamp(.98rem,1.25vw,1.1rem);
    font-weight:300;line-height:1.65;
    color:var(--taupe);
    max-width:56ch;}
:where(.cp) .lede strong{color:var(--bone);font-weight:500;}
:where(.cp) .btn-primary{display:inline-block;
    background:var(--rust);
    color:var(--bone);
    text-decoration:none;
    font-weight:600;font-size:.95rem;letter-spacing:.02em;
    padding:.95rem 1.9rem;
    border-radius:999px;
    box-shadow:0 10px 28px -10px rgba(169,80,44,.55);
    transition:background .18s ease, transform .18s ease, box-shadow .18s ease;}
:where(.cp) .btn-primary:hover{background:var(--rust-hover);
    transform:translateY(-2px);
    box-shadow:0 14px 32px -10px rgba(169,80,44,.65);}
:where(.cp) .btn-primary:focus-visible{outline-offset:4px;border-radius:999px;}
:where(.cp) .btn-secondary{font-size:.95rem;
    padding:.45rem .1rem .3rem;}
@keyframes cp-rise{from{opacity:0;transform:translateY(16px);}
    to{opacity:1;transform:translateY(0);}}
.cp::after{content:"";position:fixed;inset:0;z-index:50;pointer-events:none;
    opacity:.05;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size:180px 180px;}
:where(.cp) .page-intro{background:
      
      repeating-linear-gradient(to bottom, rgba(245,237,225,.028) 0 1px, transparent 1px 2.6rem),
      radial-gradient(110% 90% at 82% 8%, rgba(192,117,77,.13) 0%, rgba(192,117,77,0) 55%),
      radial-gradient(140% 110% at 8% 110%, var(--espresso-deep) 0%, var(--espresso) 60%);
    overflow:hidden;}
:where(.cp) .intro-inner{max-width:var(--cp-shell);margin:0 auto;}
:where(.cp) .bulletin-rule{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem 1.5rem;
    border-top:2px solid rgba(245,237,225,.2);
    border-bottom:1px solid rgba(245,237,225,.09);
    padding:.6rem .1rem .65rem;
    margin-bottom:clamp(2.2rem,5vh,3.4rem);
    font-size:.68rem;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--taupe);
    animation:cp-rise .7s ease both;}
:where(.cp) .intro-grid{display:grid;
    grid-template-columns:minmax(0,7fr) minmax(0,4fr);
    gap:clamp(2.5rem,6vw,6rem);
    align-items:center;}
:where(.cp) .page-intro .eyebrow{animation:cp-rise .7s .06s ease both;}
:where(.cp) h1{font-size:clamp(2.1rem,4.4vw,3.5rem);
    font-weight:600;
    line-height:1.1;
    letter-spacing:-.015em;
    max-width:16ch;
    animation:cp-rise .7s .12s ease both;}
:where(.cp) .tab{display:inline-block;
    background:linear-gradient(160deg,var(--bone) 0%,var(--parchment) 100%);
    color:#33261B;
    font-size:.3em;font-weight:600;
    letter-spacing:.16em;text-transform:uppercase;
    padding:.6em .95em .55em;
    border-radius:.4em;
    border-top:2px solid var(--copper);
    transform:rotate(-2.5deg) translateY(-.55em);
    box-shadow:0 12px 24px -10px rgba(0,0,0,.6);
    margin-left:.3em;
    white-space:nowrap;}
:where(.cp) .tagline{margin-top:1.35rem;
    font-size:.78rem;font-weight:600;
    letter-spacing:.15em;text-transform:uppercase;
    line-height:1.8;
    color:var(--copper);
    max-width:46ch;
    animation:cp-rise .7s .18s ease both;}
:where(.cp) .subhead{margin-top:1.1rem;
    font-size:clamp(1rem,1.35vw,1.15rem);
    font-weight:300;line-height:1.65;
    color:var(--taupe);
    max-width:52ch;
    animation:cp-rise .7s .24s ease both;}
:where(.cp) .subhead strong{color:var(--bone);font-weight:500;}
:where(.cp) .cred-line{margin-top:1.5rem;
    display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;
    font-size:.8rem;letter-spacing:.06em;
    color:var(--taupe);
    animation:cp-rise .7s .3s ease both;}
:where(.cp) .cta-row{margin-top:2.3rem;
    display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem;
    animation:cp-rise .7s .36s ease both;}
:where(.cp) .tally{animation:cp-rise .8s .3s ease both;}
:where(.cp) .tally .t{display:grid;grid-template-columns:auto 1fr;
    align-items:center;gap:clamp(1.1rem,2vw,1.7rem);
    padding:1.3rem .1rem;
    border-top:1px solid rgba(245,237,225,.1);}
:where(.cp) .tally .t:last-child{border-bottom:1px solid rgba(245,237,225,.1);}
:where(.cp) .tally .big{font-size:clamp(3.1rem,4.6vw,4.6rem);
    font-weight:300;line-height:.9;
    letter-spacing:-.02em;
    color:var(--bone);
    font-variant-numeric:tabular-nums;}
:where(.cp) .tally .big em{font-style:normal;color:var(--copper);}
:where(.cp) .tally .lab{font-size:.74rem;font-weight:600;
    letter-spacing:.18em;text-transform:uppercase;
    color:var(--bone);
    line-height:1.4;}
:where(.cp) .tally .lab em{display:block;margin-top:.3rem;
    font-style:normal;font-weight:400;
    font-size:.78rem;letter-spacing:.03em;text-transform:none;
    color:var(--taupe);}
:where(.cp) .q-band{background:
      radial-gradient(90% 130% at 12% -20%, rgba(192,117,77,.09) 0%, rgba(192,117,77,0) 60%),
      var(--espresso-deep);
    border-top:1px solid rgba(245,237,225,.06);
    border-bottom:1px solid rgba(245,237,225,.06);}
:where(.cp) .q-inner{max-width:var(--cp-shell);margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,7fr) minmax(0,5fr);
    gap:clamp(2rem,5vw,4.5rem);
    align-items:center;}
:where(.cp) .q-lead .q-big{margin-top:1.5rem;}
:where(.cp) .q-card{align-self:center;}
:where(.cp) .q-card .q-body{margin-top:0;color:rgba(34,26,20,.82);max-width:none;}
:where(.cp) .q-card .q-body strong{color:var(--rust-hover);font-weight:600;}
:where(.cp) .q-side{padding-top:.4rem;}
:where(.cp) .q-rule{border:none;width:2.6rem;height:1px;background:var(--copper);
    margin:0 0 .9rem;}
:where(.cp) .q-label{font-size:.78rem;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--peach);
    line-height:1.7;}
:where(.cp) .q-big{font-size:clamp(1.5rem,3vw,2.4rem);
    font-weight:300;
    line-height:1.32;
    letter-spacing:-.005em;
    color:var(--bone);
    max-width:24ch;}
:where(.cp) .q-big strong{color:var(--peach);font-weight:600;}
:where(.cp) .q-body{margin-top:1.5rem;
    font-size:clamp(.95rem,1.2vw,1.05rem);
    font-weight:300;line-height:1.7;
    color:var(--taupe);
    max-width:58ch;}
:where(.cp) .q-body strong{color:var(--bone);font-weight:500;}
:where(.cp) .idx-band{background:
      repeating-linear-gradient(to bottom, rgba(245,237,225,.028) 0 1px, transparent 1px 2.6rem),
      var(--espresso);}
:where(.cp) .idx-grid{display:grid;
    grid-template-columns:minmax(0,4fr) minmax(0,8fr);
    gap:clamp(2rem,5vw,5rem);
    align-items:start;}
:where(.cp) .idx-head{position:sticky;top:2.5rem;}
:where(.cp) .idx-head .lede{max-width:34ch;}
:where(.cp) .idx{list-style:none;}
:where(.cp) .idx-row{display:flex;align-items:baseline;gap:clamp(.9rem,1.6vw,1.4rem);
    padding:1.15rem .1rem;
    border-bottom:1px solid rgba(245,237,225,.08);}
:where(.cp) .idx-row:first-child{border-top:1px solid rgba(245,237,225,.08);}
:where(.cp) .idx-row .n{font-size:.78rem;font-weight:600;
    letter-spacing:.08em;
    color:var(--copper);
    font-variant-numeric:tabular-nums;
    flex:none;}
:where(.cp) .idx-row h3{font-size:clamp(1.02rem,1.45vw,1.28rem);
    font-weight:500;line-height:1.4;letter-spacing:.01em;
    color:var(--bone);}
:where(.cp) .idx-row .leader{flex:1;min-width:2.5rem;
    border-bottom:2px dotted rgba(179,164,144,.38);
    transform:translateY(-.32em);}
:where(.cp) .idx-row::after{content:"";width:.32rem;height:.32rem;border-radius:50%;
    background:var(--copper);flex:none;
    transform:translateY(-.32em);}
:where(.cp) .roster-band{padding-left:var(--cp-gutter);padding-right:var(--cp-gutter);
    background:
      radial-gradient(75% 60% at 72% 30%, rgba(192,117,77,.12) 0%, rgba(192,117,77,0) 65%),
      var(--espresso);
    overflow:hidden;}
:where(.cp) .roster-head{padding:0 clamp(1.25rem,4.5vw,4rem);}
:where(.cp) .sheet-wrap{margin-top:clamp(3.2rem,5.5vh,4.4rem);
    padding-left:clamp(1rem,4.5vw,4rem);}
:where(.cp) .sheet{position:relative;
    max-width:var(--cp-shell);
    margin-inline:auto; 
    background:linear-gradient(165deg,var(--bone) 0%,var(--parchment) 88%);
    color:#33261B;
    border-radius:.9rem 0 0 .9rem;
    padding:1.6rem clamp(1.4rem,4vw,4.5rem) clamp(1.8rem,4vw,2.8rem) clamp(1.4rem,3vw,3rem);
    box-shadow:0 34px 70px -28px rgba(0,0,0,.7);}
:where(.cp) .faculty-card{position:relative;
    width:min(18rem,calc(100% - 1.5rem));
    margin:-4.8rem 0 2rem clamp(.4rem,2.5vw,2.2rem);
    background:linear-gradient(160deg,var(--bone) 0%,var(--parchment) 100%);
    border-radius:.5rem;
    padding:1.15rem 1.3rem 1.05rem;
    box-shadow:0 22px 45px -18px rgba(0,0,0,.7);
    transform:rotate(-3.2deg);
    transition:transform .25s ease;}
:where(.cp) .faculty-card:hover{transform:rotate(-1.6deg) translateY(-3px);}
:where(.cp) .faculty-card::before{content:"";position:absolute;top:-.55rem;left:1.3rem;
    width:2.4rem;height:1.1rem;
    border:2px solid var(--copper);
    border-bottom:none;
    border-radius:1.1rem 1.1rem 0 0;
    opacity:.85;}
:where(.cp) .faculty-card .fc-label{font-size:.66rem;font-weight:600;
    letter-spacing:.15em;text-transform:uppercase;
    color:var(--rust);}
:where(.cp) .faculty-card .fc-name{margin-top:.45rem;
    font-size:1.14rem;font-weight:700;line-height:1.25;}
:where(.cp) .faculty-card .fc-role{margin-top:.25rem;
    font-size:.7rem;font-weight:600;
    letter-spacing:.11em;text-transform:uppercase;
    color:#8A7663;
    line-height:1.5;}
:where(.cp) .faculty-card .fc-cred{margin-top:.55rem;padding-top:.55rem;
    border-top:1px solid rgba(51,38,27,.14);
    font-size:.76rem;line-height:1.5;
    color:#6E5B49;}
:where(.cp) .sheet-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem 1.5rem;
    padding-bottom:.7rem;
    border-bottom:2px solid rgba(51,38,27,.32);
    box-shadow:0 4px 0 -3px rgba(51,38,27,.16); 
    font-size:.66rem;font-weight:600;
    letter-spacing:.2em;text-transform:uppercase;
    color:#8A7663;}
:where(.cp) .cols,
:where(.cp) .row{display:grid;
    grid-template-columns:3rem minmax(0,1.35fr) auto minmax(0,1fr);
    gap:clamp(1.2rem,2.5vw,2.4rem);
    align-items:start;}
:where(.cp) .cols{padding:.9rem 0 .55rem;
    border-bottom:1px solid rgba(51,38,27,.16);
    font-size:.62rem;font-weight:700;
    letter-spacing:.18em;text-transform:uppercase;
    color:#8A7663;}
:where(.cp) .rows{list-style:none;}
:where(.cp) .row{padding:1.8rem 0;
    border-bottom:1px solid rgba(51,38,27,.14);}
:where(.cp) .rows .row:nth-child(1){--rot:-3deg;}
:where(.cp) .rows .row:nth-child(2){--rot:2.4deg;}
:where(.cp) .rows .row:nth-child(3){--rot:-2.1deg;}
:where(.cp) .row .rn{font-size:1.9rem;font-weight:300;line-height:1;
    color:var(--rust);
    font-variant-numeric:tabular-nums;
    padding-top:.15rem;}
:where(.cp) .row h3{font-size:clamp(1.2rem,1.7vw,1.55rem);
    font-weight:700;line-height:1.28;
    letter-spacing:.002em;}
:where(.cp) .row .rc p{margin-top:.6rem;
    font-size:.92rem;line-height:1.62;
    color:#6E5B49;
    max-width:46ch;}
:where(.cp) .stamp{display:inline-flex;flex-direction:column;align-items:center;
    border:2px solid rgba(169,80,44,.5);
    color:var(--rust);
    border-radius:.45rem;
    padding:.7rem 1.05rem .6rem;
    transform:rotate(var(--rot,-3deg));
    text-align:center;}
:where(.cp) .stamp b{font-size:.95rem;font-weight:700;
    letter-spacing:.15em;text-transform:uppercase;}
:where(.cp) .stamp i{display:block;width:100%;height:1px;
    background:rgba(169,80,44,.3);
    margin:.42rem 0;}
:where(.cp) .stamp span{font-size:.68rem;font-weight:600;
    letter-spacing:.1em;text-transform:uppercase;
    color:#8A7663;
    white-space:nowrap;}
:where(.cp) .row .rl .city{font-size:.98rem;font-weight:700;}
:where(.cp) .row .rl .note{margin-top:.35rem;
    font-size:.78rem;line-height:1.55;
    color:#6E5B49;
    max-width:24ch;}
:where(.cp) .register{margin-top:1rem;
    display:inline-block;
    background:var(--rust);
    color:var(--bone);
    text-decoration:none;
    font-weight:600;font-size:.86rem;letter-spacing:.02em;
    padding:.85rem 1.55rem; 
    border-radius:999px;
    box-shadow:0 10px 24px -10px rgba(169,80,44,.5);
    transition:background .18s ease, transform .18s ease;}
:where(.cp) .register:hover{background:var(--rust-hover);transform:translateY(-2px);}
:where(.cp) .register:focus-visible{outline-offset:4px;border-radius:999px;}
:where(.cp) .sheet-foot{margin-top:1.5rem;
    font-size:.8rem;line-height:1.6;
    color:#8A7663;
    max-width:64ch;}
/* T-O: deliberate empty-state notice for the roster - dates are "Date TBD" by
   owner decision (no real session data). Reads as "coming soon, on purpose."
   Copy is relocated page copy (the old sheet-foot line + existing CTA words);
   the booking link is the site's real Calendly action. No fabricated data. */
:where(.cp) .roster-notice{margin:.3rem 0 2rem;
    padding:1.1rem clamp(1.2rem,3vw,1.9rem) 1.25rem;
    border:1px solid rgba(169,80,44,.26);
    border-left:3px solid var(--rust);
    border-radius:.5rem;
    background:linear-gradient(120deg,rgba(169,80,44,.06),rgba(169,80,44,0) 72%);}
:where(.cp) .roster-notice .rn-flag{font-size:.68rem;font-weight:700;
    letter-spacing:.2em;text-transform:uppercase;
    color:var(--rust);}
:where(.cp) .roster-notice .rn-note{margin-top:.5rem;
    font-size:.9rem;line-height:1.6;
    color:#6E5B49;
    max-width:62ch;}
:where(.cp) .roster-notice .rn-cta{margin-top:1.05rem;
    display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1.4rem;}
:where(.cp) .roster-notice .register{margin-top:0;}
:where(.cp) .roster-notice .rn-alt{font-size:.86rem;font-weight:600;
    letter-spacing:.02em;
    color:var(--rust);
    text-decoration:underline;text-underline-offset:.25em;
    text-decoration-color:rgba(169,80,44,.4);
    padding:.5rem .1rem;
    transition:text-decoration-color .18s ease;}
:where(.cp) .roster-notice .rn-alt:hover{text-decoration-color:var(--rust);}
:where(.cp) .steps-band{background:var(--espresso-deep);
    border-top:1px solid rgba(245,237,225,.06);
    padding-block:clamp(3rem,6vh,4.25rem);}
:where(.cp) .steps{position:relative;
    margin-top:1.9rem;
    padding-top:1.9rem;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:clamp(1.8rem,4vw,3.5rem);}
:where(.cp) .step{padding-top:1.2rem;
    border-top:1px solid rgba(245,237,225,.1);}
:where(.cp) .steps-rule{position:absolute;top:0;left:0;right:0;height:1px;border:none;
    background:linear-gradient(to right,var(--copper) 0%,rgba(192,117,77,.12) 100%);}
:where(.cp) .step .num{font-size:clamp(2.9rem,4.4vw,4.1rem);
    font-weight:600;line-height:1;
    -webkit-text-stroke:1px rgba(229,168,124,.55);
    color:transparent;}
@supports not (-webkit-text-stroke:1px red){
:where(.cp) .step .num{color:rgba(229,168,124,.45);}
}
:where(.cp) .step h3{margin-top:1rem;
    font-size:1.05rem;font-weight:600;line-height:1.35;}
:where(.cp) .step p{margin-top:.6rem;
    font-size:.92rem;font-weight:300;line-height:1.65;
    color:var(--taupe);
    max-width:40ch;}
:where(.cp) .alliance-band{background:
      radial-gradient(70% 90% at 28% 45%, rgba(192,117,77,.13) 0%, rgba(192,117,77,0) 62%),
      var(--espresso);}
:where(.cp) .alliance-grid{display:grid;
    grid-template-columns:minmax(0,6fr) minmax(0,5fr);
    gap:clamp(2.5rem,6vw,5rem);
    align-items:center;}
:where(.cp) .al-copy h2{margin-top:.2rem;max-width:22ch;}
:where(.cp) .al-copy .lede{max-width:52ch;}
:where(.cp) .al-instructor{justify-self:center;text-align:center;}
:where(.cp) .arch{width:min(15rem,72%);
    margin:0 auto;
    padding:.45rem;
    border:1px solid rgba(125,165,238,.28); 
    border-radius:14rem 14rem 1rem 1rem;
    background:rgba(70,126,231,.04);}
:where(.cp) .arch img{display:block;width:100%;aspect-ratio:4/5;
    object-fit:cover;object-position:50% 22%;
    border-radius:13.5rem 13.5rem .7rem .7rem;}
:where(.cp) .al-instructor .name{margin-top:1.15rem;
    font-size:1.05rem;font-weight:600;color:var(--bone);}
:where(.cp) .al-instructor .role{margin-top:.2rem;
    font-size:.72rem;font-weight:600;
    letter-spacing:.11em;text-transform:uppercase;
    color:var(--peach);}
:where(.cp) .instr-creds{margin:1.15rem auto 0;
    display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;
    width:fit-content;
    font-size:.79rem;letter-spacing:.05em;line-height:1.55;
    color:var(--taupe);
    text-align:left;}
:where(.cp) .instr-creds span{display:inline-flex;align-items:flex-start;gap:.45rem;}
:where(.cp) .instr-creds span::before{content:"";width:.32rem;height:.32rem;border-radius:50%;
    background:var(--copper);flex:none;
    margin-top:.45rem;}
:where(.cp) .contact-band{text-align:center;
    background:
      radial-gradient(60% 90% at 50% 100%, rgba(192,117,77,.08) 0%, rgba(192,117,77,0) 70%),
      var(--espresso-deep);
    border-top:1px solid rgba(245,237,225,.06);}
:where(.cp) .contact-band .eyebrow{justify-content:center;}
:where(.cp) .contact-band h2{margin-inline:auto;}
:where(.cp) .contact-band .lede{margin-inline:auto;}
:where(.cp) .contact-band .cta-row{margin-top:2.2rem;
    justify-content:center;
    animation:none;}
:where(.cp) .site-footer{background:
      radial-gradient(60% 90% at 50% 0%, rgba(192,117,77,.07) 0%, rgba(192,117,77,0) 70%),
      var(--espresso-deep);
    border-top:1px solid rgba(245,237,225,.09);}
:where(.cp) .footer-inner{max-width:52rem;
    margin:0 auto;
    padding:clamp(3rem,7vh,4.5rem) clamp(1.25rem,4.5vw,4rem) clamp(2.4rem,5vh,3.2rem);
    display:flex;flex-direction:column;align-items:center;
    text-align:center;}
:where(.cp) .footer-logo{width:clamp(6rem,8vw,7.25rem);height:auto;
    filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));}
:where(.cp) .closing{margin-top:1.7rem;
    font-size:clamp(1rem,1.3vw,1.12rem);
    font-weight:300;
    line-height:1.65;
    color:var(--taupe);
    max-width:42ch;}
:where(.cp) .closing strong{color:var(--bone);font-weight:500;}
:where(.cp) .contact-row{margin-top:1.45rem;
    display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
    gap:.2rem 1.1rem;
    font-size:.95rem;}
:where(.cp) .contact-row a{line-height:1.3;
    padding:.35rem .15rem;}
:where(.cp) .contact-row a.phone{font-size:1.05rem;}
:where(.cp) .contact-row .sep{width:.32rem;height:.32rem;border-radius:50%;
    background:var(--copper);flex:none;}
:where(.cp) .service-area{margin-top:.4rem;
    font-size:.8rem;font-weight:600;
    letter-spacing:.18em;text-transform:uppercase;
    line-height:1.75;
    color:var(--peach);}
:where(.cp) .footer-nav{margin-top:1.55rem;
    display:flex;flex-wrap:wrap;justify-content:center;
    gap:.1rem 1.5rem;}
:where(.cp) .rule{border:none;
    width:2.6rem;height:1px;
    background:var(--copper);
    margin:1.7rem auto 1.9rem;}
:where(.cp) .creds{display:flex;flex-wrap:wrap;justify-content:center;
    gap:.55rem 1.3rem;
    font-size:.78rem;letter-spacing:.06em;line-height:1.6;
    color:var(--taupe);
    max-width:46rem;}
:where(.cp) .footer-bottom{border-top:1px solid rgba(245,237,225,.09);
    padding:1.15rem clamp(1.25rem,4.5vw,4rem);
    display:flex;align-items:center;justify-content:space-between;
    gap:.8rem 1.5rem;
    font-size:.78rem;letter-spacing:.03em;
    color:var(--taupe);}
:where(.cp) .to-top{font-size:.78rem;
    padding:.4rem .1rem .25rem;}
html.anim :where(.cp) [data-reveal]{opacity:0;transform:translateY(20px);
    transition:opacity .75s ease var(--d,0ms),transform .75s ease var(--d,0ms);}
html.anim :where(.cp) [data-reveal].in{opacity:1;transform:none;}
html.anim :where(.cp) .q-rule,
html.anim :where(.cp) .steps-rule{transform:scaleX(0);transform-origin:0 50%;
    transition:transform 1.1s cubic-bezier(.25,.7,.3,1) .1s;}
html.anim :where(.cp) .in .q-rule,
html.anim :where(.cp) .in .steps-rule{transform:scaleX(1);}
html.anim :where(.cp) .idx-row[data-reveal]{transform:translateY(12px);}
html.anim :where(.cp) .rows .row[data-reveal]{transform:none;
    transition:opacity .65s ease var(--d,0ms);}
html.anim :where(.cp) .rows .row .stamp{opacity:0;
    transform:rotate(calc(var(--rot,-3deg) + 8deg)) scale(1.4);
    transition:
      opacity .4s ease calc(var(--d,0ms) + 430ms),
      transform .5s cubic-bezier(.32,1.45,.45,1) calc(var(--d,0ms) + 430ms);}
html.anim :where(.cp) .rows .row.in .stamp{opacity:1;
    transform:rotate(var(--rot,-3deg)) scale(1);}
html.anim :where(.cp) .sheet .faculty-card{opacity:0;transform:rotate(-1deg) translateY(-10px);
    transition:opacity .55s ease .3s,transform .6s ease .3s;}
html.anim :where(.cp) .sheet.in .faculty-card{opacity:1;transform:rotate(-3.2deg) translateY(0);}
html.anim :where(.cp) .steps .step{opacity:0;transform:translateY(16px);
    transition:opacity .7s ease calc(var(--i,0)*150ms + 250ms),
               transform .7s ease calc(var(--i,0)*150ms + 250ms);}
html.anim :where(.cp) .steps.in .step{opacity:1;transform:none;}
html.anim :where(.cp) .steps[data-reveal]{opacity:1;transform:none;}
@media (max-width:980px){
:where(.cp) .intro-grid{grid-template-columns:1fr;gap:2.6rem;}
:where(.cp) .tally{max-width:30rem;}
:where(.cp) .q-inner{grid-template-columns:1fr;gap:1.4rem;}
:where(.cp) .idx-grid{grid-template-columns:1fr;gap:2.2rem;}
:where(.cp) .idx-head{position:static;}
:where(.cp) .alliance-grid{grid-template-columns:1fr;gap:3rem;}
:where(.cp) .al-instructor{justify-self:start;text-align:left;}
:where(.cp) .arch{margin:0;width:min(14rem,68%);}
:where(.cp) .instr-creds{margin-left:0;}
}
@media (max-width:860px){
:where(.cp) .cols{display:none;}
:where(.cp) .row{grid-template-columns:2.6rem minmax(0,1fr);
      grid-template-areas:
        "n c"
        "s s"
        "l l";
      gap:1rem 1.1rem;
      padding:1.6rem 0;}
:where(.cp) .row .rn{grid-area:n;font-size:1.5rem;}
:where(.cp) .row .rc{grid-area:c;}
:where(.cp) .row .rs{grid-area:s;padding-left:3.7rem;}
:where(.cp) .row .rl{grid-area:l;padding-left:3.7rem;}
:where(.cp) .row .rl .note{max-width:40ch;}
:where(.cp) .sheet{border-radius:.7rem 0 0 .7rem;}
:where(.cp) .faculty-card{margin-top:-4.2rem;}
}
@media (max-width:834px){
:where(.cp) .steps{grid-template-columns:1fr;gap:1.6rem;max-width:32rem;padding-top:1.7rem;}
:where(.cp) .step{padding-top:1.05rem;}
}
@media (max-width:520px){
:where(.cp) .bulletin-rule span:last-child{display:none;}
:where(.cp) .tally .t{padding:1.05rem .1rem;}
:where(.cp) .tally .big{font-size:2.9rem;}
:where(.cp) .cta-row{gap:1rem;}
:where(.cp) .btn-primary{flex:1 1 100%;text-align:center;max-width:22rem;}
:where(.cp) .contact-band .cta-row .btn-primary{margin-inline:auto;}
:where(.cp) .sheet-wrap{padding-left:.9rem;}
:where(.cp) .sheet{padding-top:1.3rem;}
:where(.cp) .faculty-card{margin-top:-3.9rem;transform:rotate(-2.2deg);}
:where(.cp) .row .rs,
:where(.cp) .row .rl{padding-left:0;}
:where(.cp) .register{display:block;text-align:center;}
:where(.cp) .tab{letter-spacing:.12em;}
:where(.cp) .contact-row .sep{display:none;}
:where(.cp) .creds{flex-direction:column;align-items:flex-start;gap:.5rem;text-align:left;}
:where(.cp) .footer-bottom{flex-direction:column;justify-content:center;text-align:center;
      gap:.45rem;
      padding-top:1.4rem;padding-bottom:1.5rem;}
}


/* ================= about.html - folded from inline <style>, scoped :where(.ab) (specificity-neutral). ================= */
:where(.ab) #main h1{font-size:clamp(2.05rem,4.4vw,3.3rem);
    font-weight:600;line-height:1.1;letter-spacing:-.018em;
    max-width:21ch;text-wrap:balance;}
:where(.ab) #main .sheet{margin-top:1.9rem;}
:where(.ab) .team-grid{list-style:none;margin-top:2rem;
    display:grid;gap:1.25rem;
    grid-template-columns:1fr;}
@media (min-width:40rem){
:where(.ab) .team-grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:72rem){
:where(.ab) .team-grid{grid-template-columns:repeat(4,1fr);}
}
:where(.ab) .team-card{background:var(--umber-panel);
    border:1px solid rgba(192,117,77,.2);
    border-radius:3px;overflow:hidden;
    display:flex;flex-direction:column;}
:where(.ab) .team-card img{display:block;width:100%;height:auto;
    aspect-ratio:1/1;object-fit:cover;object-position:50% 16%;
    background:var(--espresso-deep);}
:where(.ab) .team-card.lead img{object-position:46% 22%;}
:where(.ab) .team-card .tc-body{padding:1.05rem 1.15rem 1.3rem;}
:where(.ab) .team-card .tc-role{display:block;margin-top:.4rem;
    font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:var(--peach);}
:where(.ab) .team-card p{margin-top:.85rem;color:var(--taupe);font-size:.9rem;line-height:1.62;}
:where(.ab) .founder-grid{display:grid;gap:clamp(1.8rem,4vw,3rem);margin-top:2rem;}
@media (min-width:56rem){
:where(.ab) .founder-grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:start;}
}
:where(.ab) .founder-photo img{display:block;width:100%;height:auto;border-radius:3px;
    border:1px solid rgba(192,117,77,.25);}
:where(.ab) .founder-credpanel{margin-top:1.2rem;background:var(--umber-panel);
    border:1px solid rgba(192,117,77,.2);border-radius:3px;
    padding:1.15rem 1.25rem 1.25rem;}
:where(.ab) .about-creds{display:flex;flex-wrap:wrap;gap:.55rem 1.2rem;margin-top:1.4rem;
    font-size:.82rem;line-height:1.5;letter-spacing:.04em;color:var(--taupe);}
:where(.ab) .founder-credpanel .about-creds{margin-top:0;}
:where(.ab) .about-creds-also{justify-content:flex-start;margin-top:.65rem;}
:where(.ab) .founder-bio p + p{margin-top:1.1rem;}
:where(.ab) .stance{display:grid;gap:1.6rem;margin-top:1.9rem;}
@media (min-width:52rem){
:where(.ab) .stance{grid-template-columns:repeat(2,1fr);gap:2.4rem;}
}
:where(.ab) .stance .lede{margin-top:.7rem;}


/* ================= annuities.html - folded from inline <style>, scoped :where(.an) (specificity-neutral). ================= */
:where(.an) .svc-hero h1{font-size:clamp(2.1rem,4.4vw,3.3rem);
    font-weight:600;line-height:1.1;letter-spacing:-.018em;
    max-width:16ch;text-wrap:balance;}


/* ================= business-succession.html - folded from inline <style>, scoped :where(.bs) (specificity-neutral). ================= */
:where(.bs) .succ-hero h1{font-size:clamp(2.05rem,4.4vw,3.35rem);
    font-weight:600;line-height:1.08;letter-spacing:-.018em;
    max-width:18ch;text-wrap:balance;}
:where(.bs) .succ-roles h3{margin-bottom:.4rem;}


/* ================= contact.html - folded from inline <style>, scoped :where(.ct) (specificity-neutral). ================= */
:where(.ct) .ct-hero h1{font-size:clamp(2.1rem,4.4vw,3.3rem);
    font-weight:600;line-height:1.1;letter-spacing:-.018em;
    max-width:18ch;text-wrap:balance;}
:where(.ct) .ct-sheet{max-width:38rem;}
:where(.ct) .ct-reach a{color:var(--taupe);text-decoration:none;letter-spacing:.02em;
    transition:color .18s ease;}
:where(.ct) .ct-reach a:hover{color:var(--peach);}
:where(.ct) .ct-reach a.phone{color:var(--peach);font-weight:600;}
:where(.ct) .ct-form{display:grid;gap:1.15rem;max-width:none;margin-top:1.6rem;}
:where(.ct) .ct-field{display:grid;gap:.42rem;}
:where(.ct) .ct-field label{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:#33261B;}
:where(.ct) .ct-field label .opt{font-weight:500;letter-spacing:.03em;text-transform:none;
    color:rgba(34,26,20,.66);}
:where(.ct) .ct-form input,
:where(.ct) .ct-form textarea{width:100%;font:inherit;font-size:1rem;line-height:1.5;
    color:#33261B;background:var(--bone);
    border:1px solid rgba(34,26,20,.32);border-radius:3px;
    padding:.75rem .85rem;
    transition:border-color .18s ease;}
:where(.ct) .ct-form textarea{min-height:8.5rem;resize:vertical;line-height:1.65;}
:where(.ct) .ct-form input:focus-visible,
:where(.ct) .ct-form textarea:focus-visible{outline:2px solid var(--dusk);outline-offset:2px;border-color:var(--dusk);}
:where(.ct) .ct-form .btn-primary{border:0;cursor:pointer;font-family:inherit;justify-self:start;}
:where(.ct) .ct-form .btn-primary[disabled]{opacity:.6;cursor:default;transform:none;}
:where(.ct) .ct-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
:where(.ct) .ct-status{font-size:.92rem;line-height:1.65;color:#33261B;max-width:44ch;}
:where(.ct) .ct-status[data-state="error"]{color:var(--rust-hover);}


/* ================= disclosures.html - folded from inline <style>, scoped :where(.dc) (specificity-neutral). ================= */
:where(.dc) .disc-hero h1{font-size:clamp(1.95rem,4vw,3rem);
    font-weight:600;
    line-height:1.1;
    letter-spacing:-.018em;
    max-width:20ch;
    text-wrap:balance;}


/* ================= mortgage-protection.html - folded from inline <style>, scoped :where(.mp) (specificity-neutral). ================= */
:where(.mp) .band h1{font-size:clamp(2.05rem,4.4vw,3.35rem);
    font-weight:600;
    line-height:1.08;
    letter-spacing:-.018em;
    max-width:20ch;
    text-wrap:balance;}


/* ================= our-services.html - folded from inline <style>, scoped :where(.sv) (specificity-neutral). ================= */
:where(.sv) .svc-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem);
    font-weight:600;line-height:1.1;letter-spacing:-.018em;
    max-width:20ch;text-wrap:balance;}


/* ================= tax-estate-planning.html - folded from inline <style>, scoped :where(.te) (specificity-neutral). ================= */
:where(.te) .hero{background:
      radial-gradient(105% 85% at 82% 0%, rgba(192,117,77,.12) 0%, rgba(192,117,77,0) 58%),
      var(--espresso);}
:where(.te) .page-h1{font-size:clamp(2.05rem,4.4vw,3.3rem);
    font-weight:600;line-height:1.09;letter-spacing:-.018em;
    max-width:21ch;text-wrap:balance;}
:where(.te) .page-h1 .turn{color:var(--peach);}
:where(.te) .route{margin-top:2rem;}
:where(.te) .route-origin{position:relative;padding-left:1.6rem;
    color:var(--taupe);font-size:.95rem;line-height:1.65;max-width:60ch;}
:where(.te) .route-origin-k{color:var(--bone);font-weight:600;}
:where(.te) .route-origin::before{content:"";position:absolute;left:.35rem;top:.4rem;bottom:-1.35rem;width:1px;
    background:rgba(192,117,77,.5);}
:where(.te) .route-lanes{list-style:none;position:relative;
    display:grid;gap:1rem;
    margin-top:1.35rem;padding-left:1.6rem;}
:where(.te) .route-lanes::before{content:"";position:absolute;left:.35rem;top:0;bottom:1.55rem;width:1px;
    background:rgba(192,117,77,.5);}
:where(.te) .route-lane{position:relative;
    background:var(--umber-panel);
    border:1px solid rgba(192,117,77,.2);
    border-radius:3px;
    padding:1.15rem 1.25rem 1.3rem;}
:where(.te) .route-lane::before{content:"";position:absolute;left:-1.25rem;top:1.55rem;width:1.25rem;height:1px;
    background:rgba(192,117,77,.5);}
:where(.te) .lane-k{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    color:var(--copper);margin-bottom:.5rem;}
:where(.te) .route-lane h3{font-size:1.05rem;font-weight:600;line-height:1.3;letter-spacing:-.005em;}
:where(.te) .route-lane p{color:var(--taupe);font-size:.93rem;line-height:1.65;margin-top:.65rem;}
:where(.te) .route-lane p.lane-note{font-size:.82rem;font-style:italic;}
:where(.te) .lane-does{list-style:none;margin-top:.9rem;}
:where(.te) .lane-does li{position:relative;padding-left:1.05rem;padding-block:.22rem;
    color:var(--bone);font-size:.88rem;line-height:1.5;}
:where(.te) .lane-does li::before{content:"";position:absolute;left:0;top:.78rem;width:.45rem;height:1px;background:var(--copper);}
@media (min-width:58rem){
:where(.te) .route-origin{padding-left:0;}
:where(.te) .route-origin::before{left:1.4rem;top:100%;bottom:auto;height:1.5rem;}
:where(.te) .route-lanes{grid-template-columns:repeat(3,minmax(0,1fr));
      gap:1.25rem;
      padding-left:0;padding-top:2rem;margin-top:1.5rem;
      border-top:1px solid rgba(192,117,77,.28);}
:where(.te) .route-lanes::before{display:none;}
:where(.te) .route-lane::before{left:1.4rem;top:-2rem;width:1px;height:2rem;}
}
:where(.te) .how-line{margin-top:2rem;font-size:.95rem;}
:where(.te) .how-line a{display:inline-block;padding:.45rem .1rem .3rem;}


/* ================= wealth-management.html - folded from inline <style>, scoped :where(.wm) (specificity-neutral). ================= */
:where(.wm) #wm-hero h1{font-size:clamp(2.05rem,4.4vw,3.3rem);
    font-weight:600;
    line-height:1.1;
    letter-spacing:-.018em;
    max-width:22ch;
    text-wrap:balance;}
:where(.wm) main .sheet{margin-top:1.6rem;}


/* ==================================================================
   SERVICE HERO (.svc-hero) - cycle 3 tournament winner ('filing card').
   2-column masthead: editorial text left, a tactile parchment service
   card right (the homepage ledger's paper vocabulary), killing the
   dead right half the widened container exposed. Shared by all 6
   service-area heroes. Stacks to one column at <=834px, flat at 390.
   ================================================================== */
.svc-hero .wrap{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);}
.svc-hero__text{min-width:0;}
.svc-hero__text .lede{margin-bottom:0;}
.svc-hero__card{position:relative;justify-self:end;width:100%;max-width:30rem;color:#33261B;border-radius:3px;padding:clamp(1.6rem,2.4vw,2.35rem) clamp(1.5rem,2.2vw,2.15rem) clamp(1.5rem,2.2vw,2rem);transform:rotate(-.7deg);background:radial-gradient(130% 70% at 8% 0%, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 58%),repeating-linear-gradient(96deg, rgba(34,26,20,.017) 0 2px, rgba(34,26,20,0) 2px 6px),linear-gradient(168deg,#F7EFE1 0%,#EFE3D0 44%,#E6D7BF 100%);box-shadow:0 1px 2px rgba(0,0,0,.28),0 26px 56px -24px rgba(0,0,0,.72),0 64px 120px -62px rgba(0,0,0,.6);}
.svc-hero__card::before{content:"";position:absolute;inset:0;border-radius:3px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");mix-blend-mode:multiply;opacity:.05;pointer-events:none;}
.svc-hero__card::after{content:"";position:absolute;left:0;top:.9rem;bottom:.9rem;width:3px;border-radius:3px;background:linear-gradient(rgba(169,80,44,0),rgba(169,80,44,.55) 18%,rgba(169,80,44,.55) 82%,rgba(169,80,44,0));pointer-events:none;}
.svc-hero__card > *{position:relative;z-index:1;}
.svc-hero__tape{position:absolute;z-index:2;top:-.7rem;right:1.5rem;width:5.2rem;height:1.5rem;transform:rotate(6deg);background:linear-gradient(rgba(245,237,225,.28),rgba(245,237,225,.16));box-shadow:0 1px 2px rgba(0,0,0,.22);border-left:1px dashed rgba(245,237,225,.28);border-right:1px dashed rgba(245,237,225,.28);pointer-events:none;}
.svc-hero__tab{display:flex;align-items:center;gap:.55rem;font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--rust-hover);}
.svc-hero__tab::after{content:"";flex:1;height:1px;background:rgba(51,38,27,.16);}
.svc-hero__no{display:block;margin-top:.55rem;font-size:clamp(4rem,7.5vw,6.2rem);font-weight:600;line-height:.88;letter-spacing:-.03em;color:#33261B;}
.svc-hero__mark{display:block;margin-top:.5rem;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:600;line-height:1;letter-spacing:.02em;color:#33261B;}
.svc-hero__cardname{margin:.35rem 0 0;font-size:1.12rem;font-weight:600;line-height:1.2;letter-spacing:-.01em;color:#33261B;}
.svc-hero__rule{border:0;border-top:1px solid rgba(34,26,20,.16);margin:1rem 0 .9rem;}
.svc-hero__meta{margin:0;display:grid;gap:.5rem;}
.svc-hero__meta > div{display:grid;grid-template-columns:4.4rem 1fr;gap:.7rem;align-items:baseline;}
.svc-hero__meta dt{font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--rust-hover);}
.svc-hero__meta dd{margin:0;font-size:.82rem;line-height:1.45;color:rgba(34,26,20,.74);}
@media (max-width:834px){.svc-hero .wrap{grid-template-columns:1fr;gap:2.25rem;}.svc-hero__card{justify-self:start;max-width:26rem;transform:rotate(-.5deg);margin-top:.25rem;}.svc-hero__no{font-size:clamp(3.6rem,15vw,4.8rem);}}
@media (max-width:390px){.svc-hero__card{max-width:none;transform:none;padding:1.4rem 1.35rem 1.35rem;}.svc-hero__no{font-size:3.4rem;}.svc-hero__tape{right:1.1rem;width:4.6rem;}.svc-hero__meta > div{grid-template-columns:3.9rem 1fr;}}


/* ==================================================================
   Cycle 3 motion pass - service hero entrance. Base state is opacity:1
   (content never depends on JS/motion); the staggered rise + card fade
   run only under prefers-reduced-motion:no-preference, reusing the
   homepage 'rise' keyframe so the service heroes share the site's motion
   language. The card fades only (svc-fade) so its rotation is preserved.
   ================================================================== */
@keyframes svc-fade{ from{opacity:0;} to{opacity:1;} }
@media (prefers-reduced-motion:no-preference){
  .svc-hero__text > *{ animation:rise .7s ease both; }
  .svc-hero__text .eyebrow{ animation-delay:.05s; }
  .svc-hero__text h1{ animation-delay:.12s; }
  .svc-hero__text .lede{ animation-delay:.2s; }
  .svc-hero__card{ animation:svc-fade .9s .28s ease both; }
}


/* ==================================================================
   Cycle 3: overview 'sheet' cards were full-width parchment with the prose
   capped at 50ch and stranded on the left ~55%, leaving the right of the
   card blank (the last residue of the dead-half, wearing a parchment coat).
   .sheet--flow lets the prose fill the card as a 2-column printed document
   on wide screens; headings and the divider rule span both columns. Only
   pure-prose sheets carry the modifier - structured sheets (e.g. wealth
   management's 'Who does what' grid) keep their own layout.
   ================================================================== */
@media (min-width:60rem){
  .sheet--flow{ columns:2; column-gap:clamp(2rem, 4vw, 3.5rem); }
  .sheet--flow > h2, .sheet--flow > h3, .sheet--flow > .sheet-rule{ column-span:all; }
  .sheet--flow p{ max-width:none; break-inside:avoid; }
  .sheet--flow .inline-hedge{ break-inside:avoid; }
}


/* ==================================================================
   CONTACT form section - the form sheet was capped at 38rem and stranded
   on the left, leaving the widened container's right half blank. At >=60rem
   the form ('.ct-sheet') sits left (1.2fr) beside a supporting paper card
   ('.ct-reach-card', reusing the .svc-hero__card filing-card recipe) that
   carries the real reach lines (0.8fr). Below 60rem both stack to one
   column and the form sheet keeps its own 38rem document cap.
   ================================================================== */
:where(.ct) .ct-reach-card{margin-top:1.6rem;}
:where(.ct) .ct-reach-card .svc-hero__meta dd{overflow-wrap:anywhere;}
:where(.ct) .ct-reach-card .svc-hero__meta a{color:var(--taupe);text-decoration:none;letter-spacing:.02em;}
:where(.ct) .ct-reach-card .svc-hero__meta a:hover{color:var(--peach);}
:where(.ct) .ct-reach-card .svc-hero__meta a.phone{color:var(--peach);font-weight:600;}
@media (min-width:60rem){
  :where(.ct) .ct-form-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.72fr);gap:clamp(1.75rem,3.4vw,3rem);align-items:center;margin-top:1.6rem;}
  :where(.ct) .ct-form-grid .ct-sheet{max-width:none;margin-top:0;}
  :where(.ct) .ct-form-grid .ct-reach-card{margin-top:0;justify-self:end;}
}


/* ==================================================================
   FOOTER - cycle 5 redesign. Was a centered 52rem stack leaving big
   empty sides; now a multi-column grid (brand / explore / contact /
   credentials) that fills the standard container width and stacks to
   2-col at <=900px and 1-col at <=560px. Same warm ground + copper
   column rules. Copy unchanged. Shared by all 11 pages.
   ================================================================== */
.site-footer{
  background:
    radial-gradient(60% 90% at 50% 0%, rgba(192,117,77,.07) 0%, rgba(192,117,77,0) 70%),
    var(--espresso-deep);
  border-top:1px solid rgba(245,237,225,.09);
}
.footer-inner{
  display:block; text-align:left;   /* reset the old centered flex column */
  max-width:clamp(56rem, 82vw, 80rem); margin:0 auto;
  padding:clamp(3rem,7vh,4.5rem) clamp(1.25rem,4.5vw,4rem) clamp(2.6rem,5vh,3.4rem);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.55fr .85fr 1.35fr 1.4fr;
  gap:clamp(1.75rem,3vw,3.75rem);
  align-items:start;
}
.footer-logo{
  width:clamp(6rem,7vw,7.25rem); height:auto;
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));
}
.site-footer .closing{
  margin-top:1.35rem;
  font-size:1rem; font-weight:300; line-height:1.65;
  color:var(--taupe); max-width:34ch;
}
.site-footer .closing strong{ color:var(--bone); font-weight:500; }
.footer-brand .service-area{
  margin-top:1rem; margin-bottom:0;
  font-size:.76rem; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--peach); line-height:1.6;
}

/* column heading: copper-ruled eyebrow, matching the site's eyebrow grammar */
.footer-col{ display:flex; flex-direction:column; align-items:flex-start; }
.footer-col-h{
  margin:0 0 1.1rem; padding-bottom:.7rem; position:relative;
  font-size:.72rem; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--peach);
}
.footer-col-h::after{
  content:""; position:absolute; left:0; bottom:0;
  width:2rem; height:1px; background:var(--copper);
}
.footer-col a{
  color:var(--taupe); text-decoration:none; line-height:1.4;
  transition:color .18s ease;
}
.footer-col a:hover{ color:var(--peach); }
.footer-explore a{ font-size:.95rem; padding:.42rem 0; }
.footer-reach a{ font-size:.9rem; padding:.42rem 0; overflow-wrap:anywhere; }
.footer-reach a.phone{ color:var(--peach); font-weight:600; font-size:1.05rem; }

/* credentials column: the two credential tiers stack vertically, left-aligned,
   keeping their copper dot markers (.creds span::before / .creds-also span::before) */
.footer-creds-col .creds,
.footer-creds-col .creds-also{
  display:flex; flex-direction:column; align-items:flex-start;
  justify-content:flex-start; text-align:left;
  gap:.55rem; max-width:none; margin:0;
}
.footer-creds-col .creds-also{ margin-top:1rem; }

.footer-bottom{
  border-top:1px solid rgba(245,237,225,.09);
  max-width:clamp(56rem, 82vw, 80rem); margin:0 auto;
  padding:1.15rem clamp(1.25rem,4.5vw,4rem);
  display:flex; align-items:center; justify-content:space-between;
  gap:.8rem 1.5rem;
  font-size:.78rem; letter-spacing:.03em; color:var(--taupe);
}

/* touch targets: footer links >= 44px on touch widths (replaces the old
   .footer-nav a / .contact-row a rule now those classes are gone from markup) */
@media (max-width:834px){
  .footer-col a, .footer-bottom a{
    min-height:44px; display:inline-flex; align-items:center;
  }
}
@media (max-width:900px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:2.6rem 2rem; }
  .footer-brand{ grid-column:1 / -1; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr; gap:2.1rem; }
  .footer-bottom{ flex-direction:column; justify-content:center; text-align:center; gap:.5rem; }
}

/* ==================================================================
   DEPLOY-PREP PASS - dead-half / squeezed-section fills (2026-07-28)
   Every rule below removes an EMPTY HALF at desktop (>=835px) using the
   site's existing 2-col vocabulary, and collapses to a single column at
   <=834px. No copy changes - structure/layout only. Appended last so the
   fills win the cascade over the earlier measure caps they replace.
   Breakpoint note: 835px is used so the render gate's 834px cell stays
   single-column (matches the .svc-hero max-width:834px stack point).
   ================================================================== */

/* --- FIX 1 (shared, 6 pages): the "important considerations" hedge note
   was capped (52ch/76ch) and pinned left, stranding the right ~55% of the
   band. Flow it as a balanced 2-column printed register that fills the band;
   the heading spans both columns. Paragraphs uncapped so they fill the
   columns; break-inside left auto so a single-paragraph note (our-services)
   still balances across both columns instead of hanging in column one. */
@media (min-width:835px){
  .considerations{ columns:2; column-gap:clamp(2rem,4vw,3.5rem); }
  .considerations > :is(h2,h3){ column-span:all; }
  .considerations p{ max-width:none; }
}

/* --- FIX 3 (shared: annuities + business-succession "rest of the plan",
   also disclosures "Licensing" intro): heading (eyebrow + h2) and its lede
   stacked in the left ~45%, right half empty above a full-width grid. Split
   them into a 2-col intro row - heading left, lede right - so both halves
   carry content. Collapses to one column at <=834px. */
.intro-split__head{ min-width:0; }
@media (min-width:835px){
  .intro-split{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:clamp(2rem,5vw,4rem);
    align-items:end;
  }
  .intro-split .lede{ margin-top:0; max-width:none; }
}

/* --- FIX 4 (business-succession "who does what"): the parchment card set
   columns:2 but every h3 reset the flow, so both role blocks landed in the
   left column and the right half of the card was blank cream. This is a
   STRUCTURED sheet (h3 + p pairs), so it drops the multi-column flow for a
   real 2-col parchment grid - role 1 fills the left, role 2 the right, with
   a hairline divider between them. Stacks at <=959px. */
:where(.bs) .succ-role-grid{ display:grid; gap:1.6rem; }
:where(.bs) .succ-role-grid h3{ margin-bottom:.4rem; }
:where(.bs) .succ-role-grid p{ max-width:none; }
@media (min-width:60rem){
  :where(.bs) .succ-role-grid{ grid-template-columns:1fr 1fr; gap:0; }
  :where(.bs) .succ-role-grid .succ-role{ padding-right:clamp(2rem,4vw,3.5rem); }
  :where(.bs) .succ-role-grid .succ-role + .succ-role{
    padding-right:0;
    padding-left:clamp(2rem,4vw,3.5rem);
    border-left:1px solid rgba(34,26,20,.16);
  }
}

/* --- FIX 5 (tax-estate-planning "who does what" flowchart): the origin
   line and the closing hedge were both pinned left with an empty right.
   At desktop the origin becomes a centered caption feeding the 3 lanes
   below (its copper connector re-centres with it), and the closing hedge
   becomes a centered summary - both symmetric, neither a stranded half. */
@media (min-width:58rem){
  :where(.te) .route-origin{ max-width:70ch; margin-inline:auto; text-align:center; }
  :where(.te) .route-origin::before{ left:50%; transform:translateX(-50%); }
  :where(.te) .route .inline-hedge{ max-width:64ch; margin-inline:auto; text-align:center; }
}

/* --- FIX 6 (contact): the "How to reach us" reach ledger was excluded from
   the auto-fit register and stacked in the left third. Spread its three
   contact rows across the band as a 3-column paper-chit register at desktop;
   each row is closed top and bottom so they read as three even cells. The
   two-child <li> internal grid (tick + span) is untouched. */
@media (min-width:835px){
  .mini-ledger.ct-reach{
    grid-template-columns:repeat(3,minmax(0,1fr));
    column-gap:clamp(1.5rem,4vw,3.5rem);
  }
  .mini-ledger.ct-reach li{ border-bottom:1px solid rgba(192,117,77,.16); }
}

/* --- FIX 7a (disclosures section 2 "What this website is"): a single short
   paragraph in a .sheet--flow card cannot fill two columns while
   break-inside is avoided, so the right column stayed blank parchment.
   Allow this one note to split across the two columns so it fills the card,
   matching the 2-col rhythm of the detail sheets below it. */
@media (min-width:60rem){
  .sheet--flow-split p{ break-inside:auto; }
}

/* --- FIX 7b (disclosures "Licensing" verification line): the "you can look
   the number up yourself" lede sat alone with an empty right. Centre it so
   it reads as a deliberate verification statement (balanced margins), while
   staying AFTER the licence ledger so "the link above" remains accurate. */
:where(.dc) .lic-verify{ margin-inline:auto; text-align:center; }

/* --- FIX 8 (cpe roster "Dates to be announced" notice): the flag, note and
   CTA all stacked on the left of the full-width callout, leaving the right
   ~55% empty. Lay the text left and the action stack right so the notice
   fills its own width and reads as an intentional, complete empty-state. */
@media (min-width:835px){
  :where(.cp) .roster-notice{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:clamp(1.5rem,4vw,3rem);
    align-items:center;
  }
  :where(.cp) .roster-notice .rn-note{ max-width:none; }
  :where(.cp) .roster-notice .rn-cta{
    margin-top:0;
    flex-direction:column;
    align-items:flex-end;
  }
}

/* --- D3 (shared footer disclaimer, all 11 pages): the two body paragraphs
   were a narrow 56ch centred column with wasted sides. Widen the block to
   the footer's own width and lay the two body paragraphs as a 2-column,
   left-aligned register with the "Important disclosures" label spanning the
   top. Collapses to one column at <=834px. Copy unchanged. */
.site-disclaimer .disclaimer-inner{ max-width:clamp(56rem,82vw,80rem); margin:0 auto; }
.site-disclaimer .disclaimer-inner .legal-lede{ max-width:none; margin:0 0 .7rem; text-align:left; }
.site-disclaimer .disclaimer-body p{ max-width:none; margin:0; text-align:left; }
.site-disclaimer .disclaimer-body p + p{ margin-top:.7rem; }
@media (min-width:835px){
  .site-disclaimer .disclaimer-body{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:clamp(2rem,4vw,3.5rem);
    align-items:start;
  }
  .site-disclaimer .disclaimer-body p + p{ margin-top:0; }
}

/* --- SECONDARY (annuities "Is this right for me?" chit grid): six chits fell
   as 5 + 1, stranding the sixth alone on a second row. Scoped to annuities so
   the six audience chits land as a balanced 3 x 2 register at desktop. Other
   pages' audience grids (different item counts) are untouched. */
@media (min-width:835px){
  :where(.an) .audience{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
