/* =========================================================================
   P V A R & Associates
   Palette   Ledger green on mineral limewash, brass for figures only.
   Type      Fraunces (display) / Figtree (text) / Spline Sans Mono (data).
   Rule      No boxes, no cards, no borders, no grid lines. Sections are
             separated by a change of background colour and nothing else.
   ========================================================================= */

:root{
  --limewash:#F4F6F1;
  --mist:#E8EEE7;
  --jade:#DCE7DE;
  --ledger:#12433A;
  --ledger-deep:#0A2621;
  --brass:#A07C3A;
  --ink:#161C19;
  --faint:#5E6B64;
  --hair:rgba(18,67,58,.14);

  --pad:clamp(1.25rem,5vw,5.5rem);
  --gap:clamp(3rem,6.5vw,6rem);
  --measure:34rem;

  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --text:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --data:"Spline Sans Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --ease:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--limewash);color:var(--ink);
  font-family:var(--text);font-size:clamp(1rem,.96rem + .2vw,1.0625rem);
  line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{max-width:100%;height:auto;display:block}

/* ---------- Type ------------------------------------------------------- */

h1,h2,h3,h4{
  font-family:var(--display);font-weight:500;
  font-variation-settings:"SOFT" 0,"WONK" 0;
  letter-spacing:-.015em;line-height:1.08;margin:0;
  color:var(--ledger);text-wrap:balance;
}
h1{font-size:clamp(2.6rem,1.6rem + 4.4vw,5.6rem);letter-spacing:-.028em}
h2{font-size:clamp(2rem,1.4rem + 2.6vw,3.7rem);letter-spacing:-.022em}
h3{font-size:clamp(1.3rem,1.15rem + .7vw,1.85rem)}
h4{font-size:clamp(1.05rem,1rem + .3vw,1.2rem);letter-spacing:-.005em}
p{margin:0 0 1.15em;max-width:var(--measure)}
p:last-child{margin-bottom:0}

/* Display sizes are set tight (line-height 1.08), so descenders sit close to
   the box edge. Anything following a heading needs its own clearance. */
h1 + p,h2 + p,h1 + .lede,h2 + .lede,h1 + div,h2 + div{margin-top:1.15rem}
.head h1,.head h2{margin-bottom:.2rem}

.eyebrow{
  font-family:var(--data);font-size:.6875rem;font-weight:500;
  letter-spacing:.24em;text-transform:uppercase;color:var(--brass);
  margin:0 0 1.6rem;display:block;
}
.eyebrow--pale{color:rgba(244,246,241,.62)}
.lede{
  font-size:clamp(1.1rem,1.03rem + .38vw,1.375rem);line-height:1.55;
  color:var(--faint);max-width:38rem;
}
.fig{font-family:var(--data);font-variant-numeric:tabular-nums;color:var(--brass)}

/* The address is long and must never push the page sideways on a phone. */
.mail{overflow-wrap:anywhere}
.mail-hd{
  font-family:var(--display);font-weight:500;color:var(--ledger);
  font-variation-settings:"SOFT" 0,"WONK" 0;line-height:1.22;
  font-size:clamp(1.15rem,.8rem + 2.2vw,1.9rem);letter-spacing:-.01em;
  margin:0;max-width:none;
}
.mail-hd .mail{text-decoration-thickness:1px;text-underline-offset:.2em}
.muted{color:var(--faint)}

a{color:var(--ledger);text-decoration-thickness:1px;text-underline-offset:.22em}
a:hover{color:var(--brass)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}

/* The one link at the end of a section. A word and a rule that grows. */
.go{
  display:inline-flex;align-items:baseline;gap:.6rem;
  font-family:var(--data);font-size:.8125rem;letter-spacing:.14em;
  text-transform:uppercase;text-decoration:none;color:var(--ledger);
  padding-bottom:.35rem;position:relative;font-weight:500;
}
.go::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:currentColor;transform:scaleX(.28);transform-origin:left;
  transition:transform .6s var(--ease);
}
.go:hover::after,.go:focus-visible::after{transform:scaleX(1)}
.go .arw{transition:transform .5s var(--ease)}
.go:hover .arw{transform:translateX(.3rem)}
.go--pale{color:rgba(244,246,241,.9)}
.go--pale:hover{color:#fff}

/* ---------- Panels ------------------------------------------------------ */

.wrap{max-width:78rem;margin:0 auto;padding-inline:var(--pad)}
.wrap--narrow{max-width:52rem}

.panel{
  --from:transparent;
  position:relative;padding-block:var(--gap);background:var(--limewash);
}
.panel::before{
  content:"";position:absolute;inset:0 0 auto 0;height:11vh;
  background:linear-gradient(180deg,var(--from),transparent);
  pointer-events:none;
}
.panel--mist{background:var(--mist)}
.panel--jade{background:var(--jade)}
.panel--dark{background:var(--ledger-deep);color:rgba(244,246,241,.82)}
.panel--dark h2,.panel--dark h3,.panel--dark h4{color:#F4F6F1}
.panel--dark a{color:#F4F6F1}
.panel--dark .muted{color:rgba(244,246,241,.6)}
.panel--tight{padding-block:calc(var(--gap) * .62)}

.head{max-width:46rem;margin-bottom:clamp(2.2rem,4vw,3.2rem)}

/* Centred blocks. Paragraphs keep their measure but sit in the middle. */
.ctr{text-align:center;max-width:54rem;margin-inline:auto}
.ctr p{margin-inline:auto}
.ctr .head{margin-inline:auto}

/* Heading on the left, prose on the right, so the full width is used. */
.duo{display:grid;gap:clamp(1.8rem,4vw,3rem)}
.duo > .head{max-width:28rem}
@media(min-width:60rem){
  .duo{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
       gap:clamp(3rem,6vw,5.5rem);align-items:start}
  .duo > .head{margin-bottom:0}
}
.head p{color:var(--faint)}

/* ---------- Header ------------------------------------------------------ */

.hdr{
  position:sticky;top:0;z-index:70;
  background:color-mix(in srgb,var(--limewash) 88%,transparent);
  backdrop-filter:saturate(1.5) blur(14px);
  -webkit-backdrop-filter:saturate(1.5) blur(14px);
  transition:box-shadow .4s var(--ease);
}
.hdr.is-stuck{box-shadow:0 1px 0 var(--hair),0 14px 34px rgba(10,38,33,.05)}
.hdr-in{
  max-width:78rem;margin:0 auto;padding:.9rem var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
}
.brand{display:block;flex:0 0 auto;line-height:0}
.brand svg{width:clamp(9rem,15vw,11.5rem)}

.burger{
  display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0 10px;background:none;border:0;cursor:pointer;
  color:var(--ledger);
}
.burger span{display:block;height:1.5px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.nav{display:none}
.nav.is-open{
  display:block;position:absolute;left:0;right:0;top:100%;
  background:var(--limewash);padding:.5rem var(--pad) 2rem;
  box-shadow:0 18px 34px rgba(10,38,33,.07);max-height:78vh;overflow-y:auto;
}
.nav-list{list-style:none;margin:0;padding:0}
.nav-item{position:relative}
.nav-top{
  display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;
  background:none;border:0;cursor:pointer;padding:.85rem 0;
  font-family:var(--text);font-size:1rem;font-weight:500;color:var(--ink);
  text-align:left;text-decoration:none;
}
.nav-top:hover,.nav-top[aria-expanded=true]{color:var(--brass)}
.nav-top .chev{
  width:.42rem;height:.42rem;border-right:1.4px solid currentColor;
  border-bottom:1.4px solid currentColor;transform:rotate(45deg);
  transition:transform .35s var(--ease);flex:0 0 auto;margin-bottom:.2rem;
}
.nav-top[aria-expanded=true] .chev{transform:rotate(-135deg)}
.nav-sub{list-style:none;margin:0 0 .6rem;padding:0 0 .4rem .9rem;display:none}
.nav-sub.is-open{display:block}
.nav-sub a{
  display:block;padding:.42rem 0;font-size:.9375rem;color:var(--faint);
  text-decoration:none;
}
.nav-sub a:hover{color:var(--brass)}
.nav-cta{margin-top:1.4rem}

@media(min-width:64rem){
  .burger{display:none}
  .nav,.nav.is-open{
    display:block;position:static;padding:0;background:none;box-shadow:none;
    max-height:none;overflow:visible;
  }
  .nav-list{display:flex;align-items:center;gap:clamp(.5rem,1.6vw,1.7rem)}
  .nav-top{padding:1.1rem 0;font-size:.9375rem;white-space:nowrap}
  /* Hover bridge: the gap between the trigger and the panel must stay hot,
     or the menu closes as the pointer crosses it. */
  .nav-item::after{
    content:"";position:absolute;left:-1rem;right:-1rem;top:100%;
    height:1.05rem;
  }
  .nav-sub{
    position:absolute;top:100%;left:-1.25rem;margin-top:1.05rem;
    display:block;visibility:hidden;opacity:0;transform:translateY(-.4rem);
    background:var(--limewash);padding:1.15rem 1.6rem 1.35rem;min-width:16rem;
    box-shadow:0 20px 40px rgba(10,38,33,.1);z-index:80;
    transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
    border-top:2px solid var(--brass);
  }
  .nav-item:hover .nav-sub,.nav-sub.is-open,.nav-item:focus-within .nav-sub{
    visibility:visible;opacity:1;transform:translateY(0);
  }
  .nav-sub--wide{columns:2;column-gap:2.4rem;min-width:30rem}
  .nav-sub a{padding:.36rem 0;break-inside:avoid}
  .nav-cta{margin:0}
}

.skip{
  position:absolute;left:-9999px;top:0;background:var(--ledger);color:#fff;
  padding:.75rem 1.25rem;z-index:200;text-decoration:none;
}
.skip:focus{left:0}

/* ---------- Hero -------------------------------------------------------- */

.hero{
  position:relative;overflow:hidden;
  padding-block:clamp(3rem,6vw,5.5rem) clamp(3.5rem,7vw,6rem);
  background:
    radial-gradient(120% 90% at 78% 12%,rgba(220,231,222,.9),transparent 62%),
    linear-gradient(180deg,var(--limewash),var(--mist));
}
.hero-grid{
  display:grid;gap:clamp(3rem,6vw,5rem);align-items:center;
  grid-template-columns:1fr;position:relative;z-index:2;
}
@media(min-width:60rem){.hero-grid{grid-template-columns:1.08fr .92fr}}

.hero h1{margin-bottom:.4rem}
.hero h1 .em{
  display:block;font-style:italic;color:var(--brass);
  font-variation-settings:"SOFT" 0,"WONK" 1;
}
.hero-note{
  margin-top:2.4rem;font-family:var(--data);font-size:.75rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
}
.hero-note b{color:var(--brass);font-weight:500}

/* the rosette sits behind everything and turns as the page scrolls */
.rosette{
  position:absolute;top:46%;left:74%;width:min(108vh,60rem);aspect-ratio:1;
  transform:translate(-50%,-50%) rotate(var(--spin,0deg)) scale(var(--zoom,1));
  color:var(--ledger);opacity:.24;pointer-events:none;z-index:1;
  will-change:transform;
}
.rosette svg{width:100%;height:100%}
@media(max-width:60rem){.rosette{left:50%;top:38%;opacity:.11;width:125vw}}

/* ---------- Key dates --------------------------------------------------- */

.dates{position:relative}
.dates-hd{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding-bottom:.9rem;margin-bottom:.4rem;
}
.dates-hd .eyebrow{margin:0}
.dates-list{list-style:none;margin:0;padding:0}
.dates-list li{
  display:grid;grid-template-columns:4.6rem 1fr;gap:1.25rem;
  padding:1.05rem 0;align-items:baseline;
}
.dates-list li + li{box-shadow:0 -1px 0 var(--hair)}
.d-day{
  font-family:var(--display);font-size:2.35rem;font-weight:500;line-height:1;
  color:var(--ledger);font-variant-numeric:tabular-nums;
}
.d-mon{
  display:block;font-family:var(--data);font-size:.625rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass);margin-top:.3rem;
}
.d-form{font-weight:600;color:var(--ink);display:block}
.d-what{font-size:.875rem;color:var(--faint);display:block;margin-top:.1rem}
.d-in{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);margin-top:.35rem;display:block;
}
.dates-foot{
  margin-top:1.1rem;font-size:.8125rem;color:var(--faint);max-width:26rem;
}

/* ---------- Services ---------------------------------------------------- */

.svc-list{list-style:none;margin:0;padding:0}
.svc{position:relative}
.svc + .svc{box-shadow:0 -1px 0 var(--hair)}
.svc a{
  display:grid;grid-template-columns:3.6rem 1fr;gap:clamp(1.25rem,3vw,2.5rem);
  align-items:center;padding:clamp(1.5rem,3vw,2.2rem) 0;text-decoration:none;
  color:inherit;transition:padding-left .55s var(--ease);
}
@media(min-width:52rem){
  .svc a{grid-template-columns:5.4rem 1fr auto;align-items:center}
  .svc a:hover{padding-left:1rem}
}
.svc-art{color:var(--ledger);opacity:.72;transition:opacity .5s var(--ease),transform .6s var(--ease)}
.svc-art svg{width:100%;height:auto}
.svc a:hover .svc-art{opacity:1;transform:scale(1.06)}
.svc h3{transition:color .4s var(--ease)}
.svc a:hover h3{color:var(--brass)}
.svc p{margin:.35rem 0 0;color:var(--faint);font-size:.9375rem;max-width:40rem}
.svc-go{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass);white-space:nowrap;
  opacity:0;transform:translateX(-.5rem);transition:.5s var(--ease);
}
.svc a:hover .svc-go{opacity:1;transform:translateX(0)}
@media(max-width:52rem){.svc-go{display:none}}

/* service detail head */
.svc-hero{
  background:linear-gradient(180deg,var(--mist),var(--limewash));
  padding-block:clamp(3rem,7vw,6rem) clamp(3rem,6vw,5rem);
}
.svc-hero-in{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center}
@media(min-width:56rem){.svc-hero-in{grid-template-columns:1fr 14rem}}
.svc-hero-art{color:var(--ledger);opacity:.85;justify-self:center;width:min(14rem,60vw)}
.sid{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.18em;
  color:var(--faint);text-transform:uppercase;
}

.subs{list-style:none;margin:0;padding:0;display:grid;gap:0}
.subs li{padding:1.35rem 0;display:grid;gap:.3rem}
.subs li + li{box-shadow:0 -1px 0 var(--hair)}
.subs h4{color:var(--ledger)}
.subs p{color:var(--faint);font-size:.9375rem;margin:0;max-width:44rem}
@media(min-width:56rem){
  .subs li{grid-template-columns:17rem 1fr;gap:2rem;align-items:baseline}
}

/* ---------- People ------------------------------------------------------ */

.founders{display:grid;gap:clamp(2.5rem,6vw,4.5rem)}
@media(min-width:52rem){.founders{grid-template-columns:1fr 1fr}}

.founder{display:grid;gap:1.6rem;text-decoration:none;color:inherit}
.portrait{
  position:relative;width:100%;max-width:19rem;aspect-ratio:3/4;
  border-radius:11rem 11rem .35rem .35rem;overflow:hidden;
  background:linear-gradient(170deg,var(--jade),var(--mist));
  display:grid;place-items:center;
}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:top center}
.portrait-ph{display:grid;place-items:center;gap:.7rem;text-align:center;padding:2rem}
.portrait-ph .mono{
  font-family:var(--display);font-size:3.2rem;color:var(--ledger);opacity:.3;
  line-height:1;letter-spacing:.02em;
}
.portrait-ph small{
  font-family:var(--data);font-size:.5625rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--faint);opacity:.75;
}
.founder:hover .portrait{box-shadow:0 22px 48px rgba(10,38,33,.14)}
.portrait,.founder h3{transition:.55s var(--ease)}
.founder:hover h3{color:var(--brass)}
.f-role{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass);display:block;margin-bottom:.7rem;
}
.f-post{font-size:.875rem;color:var(--faint);margin:.35rem 0 1rem;display:block}
.founder p{font-size:.9375rem;color:var(--faint);max-width:30rem}

.city{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--brass);
  margin:clamp(2.6rem,5vw,3.6rem) 0 1.4rem;
}
.people{list-style:none;margin:0;padding:0;display:grid;gap:0}
.people li{padding:1.6rem 0}
.people li + li{box-shadow:0 -1px 0 var(--hair)}
@media(min-width:56rem){
  .people li{grid-template-columns:19rem 1fr;display:grid;gap:2.5rem;align-items:baseline}
}
.p-name{margin:0 0 .25rem}
.p-post{font-size:.8125rem;color:var(--brass);font-family:var(--data);letter-spacing:.04em}
.people p{margin:0;color:var(--faint);font-size:.9375rem;max-width:44rem}

.roll{list-style:none;margin:2.5rem 0 0;padding:0}
.roll li{
  padding:.95rem 0;display:grid;gap:.15rem;
}
.roll li + li{box-shadow:0 -1px 0 var(--hair)}
@media(min-width:44rem){.roll li{grid-template-columns:14rem 1fr;gap:1.5rem;align-items:baseline}}
.roll dt,.roll .k{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);
}
.roll .v{color:var(--ink)}

/* ---------- Offices ----------------------------------------------------- */

.offices{list-style:none;margin:0;padding:0;display:grid;gap:0}
@media(min-width:48rem){.offices{grid-template-columns:1fr 1fr;column-gap:clamp(2rem,5vw,4rem)}}
.offices li{padding:1.7rem 0;box-shadow:0 -1px 0 var(--hair)}
.o-city{display:flex;align-items:baseline;gap:.7rem;margin:0 0 .5rem}
.o-role{
  font-family:var(--data);font-size:.625rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--brass);
}
.o-addr{font-style:normal;color:var(--faint);font-size:.9375rem;line-height:1.55}
.o-note{font-size:.875rem;color:var(--faint);margin-top:.5rem;opacity:.85}

.maps{display:grid;gap:clamp(2.5rem,6vw,4.5rem)}
.map-row{display:grid;gap:1.5rem}
@media(min-width:56rem){.map-row{grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:start}}
.map-frame{
  position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;
  background:var(--mist);
}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.coords{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.1em;
  color:var(--faint);margin-top:.9rem;display:block;
}

/* ---------- Facts / lists ----------------------------------------------- */

.facts{list-style:none;margin:0;padding:0;display:grid;gap:0}
@media(min-width:48rem){.facts{grid-template-columns:repeat(3,1fr);column-gap:clamp(2rem,5vw,4rem)}}
.facts li{padding:1.6rem 0;box-shadow:0 -1px 0 var(--hair)}
.facts .n{
  font-family:var(--display);font-size:clamp(2.2rem,1.6rem + 2vw,3.2rem);
  color:var(--ledger);line-height:1;display:block;font-variant-numeric:tabular-nums;
}
.facts .l{
  font-family:var(--data);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass);margin-top:.7rem;display:block;
}
.facts p{margin:.55rem 0 0;font-size:.875rem;color:var(--faint)}

.vals{display:grid;gap:clamp(2rem,4vw,3rem)}
@media(min-width:52rem){.vals{grid-template-columns:repeat(3,1fr)}}
.vals h3{margin-bottom:.7rem}
.vals p{color:var(--faint);font-size:.9375rem}

.cols{columns:1;column-gap:clamp(2rem,5vw,4rem)}
@media(min-width:40rem){.cols{columns:2}}
@media(min-width:64rem){.cols{columns:3}}
.linklist{list-style:none;margin:0;padding:0}
.linklist li{break-inside:avoid;padding:.5rem 0}
.linklist a{font-size:.9375rem;text-decoration:none;color:var(--ink)}
.linklist a:hover{color:var(--brass);text-decoration:underline}
.linklist a::after{content:" ↗";color:var(--faint);font-size:.75rem}

.plain{list-style:none;margin:0;padding:0}
.plain li{padding:.55rem 0;color:var(--faint);font-size:.9375rem;position:relative;padding-left:1.4rem}
.plain li::before{
  content:"";position:absolute;left:0;top:1.15rem;width:.45rem;height:1px;
  background:var(--brass);
}

.sectors{display:grid;gap:clamp(2rem,4vw,3rem)}
@media(min-width:52rem){.sectors{grid-template-columns:repeat(2,1fr)}}
@media(min-width:72rem){.sectors{grid-template-columns:repeat(4,1fr)}}

/* ---------- CASANSAAR feed slots ---------------------------------------- */

.feed{min-height:6rem}
.feed-empty{
  font-family:var(--data);font-size:.8125rem;color:var(--faint);
  line-height:1.7;
}

/* ---------- Footer ------------------------------------------------------ */

.ftr{background:var(--ledger-deep);color:rgba(244,246,241,.72);padding-block:clamp(3.5rem,7vw,5.5rem) 2rem;position:relative;overflow:hidden}
.ftr-seal{
  position:absolute;right:-6rem;bottom:-8rem;width:30rem;color:#F4F6F1;
  opacity:.07;pointer-events:none;
}
.ftr-in{position:relative;z-index:2;display:grid;gap:clamp(2.5rem,5vw,4rem)}
@media(min-width:56rem){.ftr-in{grid-template-columns:1.3fr 1fr 1fr}}
.ftr h4{color:#F4F6F1;margin-bottom:1.1rem;font-size:1rem}
.ftr .eyebrow{color:rgba(244,246,241,.5);margin-bottom:1.1rem}
.ftr-nav{list-style:none;margin:0;padding:0}
.ftr-nav li{padding:.34rem 0}
.ftr-nav a{color:rgba(244,246,241,.72);text-decoration:none;font-size:.9375rem}
.ftr-nav a:hover{color:#F4F6F1}
.ftr-brand svg{width:12rem;margin-bottom:1.4rem}
.ftr p{font-size:.9375rem;color:rgba(244,246,241,.62)}
.ftr-base{
  margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.5rem;
  box-shadow:0 -1px 0 rgba(244,246,241,.12);
  display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:space-between;
  font-size:.8125rem;color:rgba(244,246,241,.5);position:relative;z-index:2;
}
.ftr-base a{color:rgba(244,246,241,.62);text-decoration:none}
.ftr-base a:hover{color:#F4F6F1}

/* ---------- Reveal ------------------------------------------------------ */

.js .rv{opacity:0;transform:translateY(1.4rem)}
.js .rv.in{
  opacity:1;transform:none;
  transition:opacity .95s var(--ease),transform .95s var(--ease);
  transition-delay:calc(var(--i,0) * 110ms);
}
/* engraved lines draw themselves as they come into view */
.js .engraving path,.js .engraving circle{
  stroke-dasharray:1;stroke-dashoffset:1;
}
.js .in .engraving path,.js .in .engraving circle,
.js .engraving.in path,.js .engraving.in circle{
  stroke-dashoffset:0;transition:stroke-dashoffset 1.5s var(--ease);
}
.js .in .engraving path:nth-child(n+6),
.js .engraving.in path:nth-child(n+6){transition-delay:.18s}

/* ---------- Utility ----------------------------------------------------- */

.vh{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
}
.notice{
  background:var(--jade);padding:1.4rem var(--pad);font-size:.875rem;
  color:var(--ledger);text-align:center;
}

/* ---------- Preferences ------------------------------------------------- */

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  .js .rv{opacity:1;transform:none}
  .js .engraving path,.js .engraving circle{stroke-dashoffset:0}
  .rosette{transform:translate(-50%,-50%)!important}
}

@media print{
  .hdr,.nav,.rosette,.ftr-seal,.burger{display:none!important}
  body{background:#fff;color:#000}
  .panel{padding-block:1.5rem;background:#fff}
  a::after{content:" (" attr(href) ")";font-size:.7rem}
}
