@font-face{font-family:'Caveat';font-style:normal;font-weight:500;
  font-display:block;src:url('/assets/fonts/caveat-500-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;
  font-display:block;src:url('/assets/fonts/caveat-500-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Caveat';font-style:normal;font-weight:700;
  font-display:block;src:url('/assets/fonts/caveat-500-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:300 600;
  font-display:block;src:url('/assets/fonts/newsreader-300_600-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Grandstander';font-style:normal;font-weight:500;
  font-display:block;src:url('/assets/fonts/grandstander-500-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Grandstander';font-style:normal;font-weight:600;
  font-display:block;src:url('/assets/fonts/grandstander-500-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Grandstander';font-style:normal;font-weight:700;
  font-display:block;src:url('/assets/fonts/grandstander-500-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"GrowSign";src:url("assets/fonts/growsign.woff2") format("woff2");font-display:block}

/* ============================================================
   GROW SPACE
   Every colour in here was sampled from Linda's room, her
   hand painted sign, and the paper leaves on her wall.
   ============================================================ */
:root{
  --paper:#FAEFDB;
  --paper-2:#F3E4CA;
  --paper-3:#E9D5B2;
  --card:#FFFAEF;
  --ink:#3A2A19;
  --ink-2:#63503C;
  --ink-3:#8A7352;
  --bark:#756155;
  --band:#C99670;      /* the terracotta from the header of her own guide */
  --wood-lt:#DFBB8C;
  --wood:#A87A50;
  --wood-dk:#6E4A2C;
  --blush:#E4A78F;

  /* straight off her painted letters */
  --blue:#5C81C4;
  --teal:#2E8F92;
  --teal-dk:#1E7B70;
  --gold:#D9B72E;
  --lilac:#B183BE;
  --blue-dk:#3F63A4;
  --lilac-dk:#8A5C9B;
  --gold-dk:#957312;
  --blush-dk:#B96A50;

  /* her paper leaves, and the olive of the real ivy */
  --leaf-1:#A8CE6A;
  --leaf-2:#85BC4E;
  --leaf-3:#5AA34C;
  --leaf-4:#3B7F41;
  --leaf-5:#2C6132;

  /* the purple of the sunflower bookshelf, and its petals */
  --plum:#8E6BA8;
  --sunflower:#E8B93A;

  --line:rgba(58,42,25,.14);
  --line-2:rgba(58,42,25,.08);
  --sh-1:0 1px 2px rgba(110,74,44,.07), 0 8px 20px -12px rgba(110,74,44,.3);
  --sh-2:0 2px 6px rgba(110,74,44,.08), 0 28px 50px -30px rgba(110,74,44,.42);
  --sh-3:0 1px 2px rgba(110,74,44,.06), 0 3px 6px rgba(110,74,44,.05), 0 14px 28px -16px rgba(110,74,44,.34);
  --r:18px;
  --r-lg:28px;
  --wrap:1330px;
  --gut:clamp(20px,4vw,40px);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");
}

@view-transition{navigation:auto}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Newsreader",Georgia,serif;
  font-optical-sizing:auto;
  font-size:19px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--gold);color:var(--ink)}

/* a sheet of paper, not a flat fill.
   Sits behind the content rather than over it, so photographs stay clean. */
body{background-image:var(--grain)}
.sec.tint,.pagehead,.sec.deep{background-image:var(--grain)}

h1,h2,h3,h4,.ui{font-family:"Grandstander",system-ui,sans-serif;font-weight:700}
h1,h2,h3{color:var(--ink);letter-spacing:-.018em;line-height:1.12;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.8vw,3.5rem);font-weight:700;line-height:1.06}
h2{font-size:clamp(1.7rem,3.2vw,2.45rem)}
h3{font-size:clamp(1.15rem,1.7vw,1.32rem);line-height:1.3}
p{color:var(--ink-2);text-wrap:pretty}
.lede{font-size:clamp(1.06rem,1.35vw,1.2rem);color:var(--ink-2);line-height:1.68}
.hand{font-family:"Caveat",cursive;font-size:1.28rem;color:var(--ink-3);line-height:1.4}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.measure{max-width:62ch}
.stack>*+*{margin-top:1.1rem}
.mt-1{margin-top:.7rem}.mt-2{margin-top:1.4rem}.mt-3{margin-top:2.4rem}.mt-4{margin-top:3.4rem}
.mid{text-align:center}

.eyebrow{
  font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:.8rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--teal);
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:18px;height:3px;border-radius:3px;background:currentColor;flex:none}
.eyebrow.mid{justify-content:center}

.skip{position:fixed;top:0;left:0;z-index:9999;background:var(--bark);color:#fff;
  padding:12px 18px;border-radius:0 0 10px 0;transform:translateY(-150%);transition:transform .2s}
.skip:focus{transform:translateY(0)}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:6px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:1rem;
  text-decoration:none;cursor:pointer;border:2px solid transparent;
  padding:12px 24px;border-radius:99px;
  transition:transform .18s cubic-bezier(.2,.8,.3,1),background .2s,box-shadow .2s,border-color .2s;
}
.btn:active{transform:translateY(1px)}
.btn.solid{background:var(--teal);color:#fff;box-shadow:0 3px 0 var(--teal-dk)}
.btn.solid:hover{background:#36B2A4;box-shadow:0 5px 0 var(--teal-dk);transform:translateY(-2px)}
.btn.quiet{border-color:var(--line);color:var(--ink);background:var(--card)}
.btn.quiet:hover{border-color:var(--bark);transform:translateY(-2px)}
.btn.sun{background:var(--gold);color:var(--ink);box-shadow:0 3px 0 #C9A417}
.btn.sun:hover{background:#F8D855;box-shadow:0 5px 0 #C9A417;transform:translateY(-2px)}
.btn.edge{border-color:rgba(253,248,239,.4);color:var(--paper)}
.btn.edge:hover{border-color:var(--paper);background:rgba(253,248,239,.1)}
.btn.lg{font-size:1.06rem;padding:15px 30px}
.btn svg{width:17px;height:17px;flex:none}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btns.mid{justify-content:center}

/* ============================================================
   CRAFT KIT
   The devices that make the page feel made rather than built:
   tape, pins, torn edges, paper leaves, handwriting.
   ============================================================ */

/* pinned to the wall, never quite square */
.pinned{transform:rotate(var(--rot,-1.1deg));transition:transform .4s cubic-bezier(.2,.8,.3,1)}
.pinned:hover{transform:rotate(0deg)}

/* a paper leaf, used as a bullet and a divider */
.leaflist{list-style:none;display:grid;gap:13px}
.leaflist li{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;color:var(--ink-2)}
.leaflist li::before{
  content:"";width:15px;height:23px;margin-top:6px;flex:none;background:var(--c,var(--leaf-3));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 78'%3E%3Cpath d='M25,3 C44,16 51,45 25,78 C-1,45 6,16 25,3 Z' fill='%23000'/%3E%3C/svg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 78'%3E%3Cpath d='M25,3 C44,16 51,45 25,78 C-1,45 6,16 25,3 Z' fill='%23000'/%3E%3C/svg%3E") no-repeat center/contain;
}
.leaflist li b{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;color:var(--ink);display:block}
.leaflist li span{display:block;font-size:1rem;line-height:1.6}

/* handwriting, with a little drawn arrow */
.scribble{font-family:"Caveat",cursive;font-size:clamp(1.15rem,1.5vw,1.34rem);color:var(--ink-3);
  line-height:1.35;display:flex;align-items:flex-start;gap:10px}
.scribble svg{flex:none;width:clamp(38px,4vw,54px);height:auto;overflow:visible;margin-top:2px}
.scribble path{fill:none;stroke:var(--ink-3);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.scribble.mid{justify-content:center;text-align:center}

/* a torn paper edge where one band of colour meets another */
.torn{position:relative}
.torn::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:16px;z-index:3;
  background:var(--to,var(--paper));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='16' preserveAspectRatio='none'%3E%3Cpath d='M0,16 L300,16 L300,7 C283,3 269,11 251,9 C232,6 221,1 203,3 C184,6 173,12 154,11 C135,9 125,3 106,4 C87,6 75,12 56,11 C38,9 22,3 0,6 Z' fill='%23000'/%3E%3C/svg%3E") repeat-x bottom/300px 16px;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='16' preserveAspectRatio='none'%3E%3Cpath d='M0,16 L300,16 L300,7 C283,3 269,11 251,9 C232,6 221,1 203,3 C184,6 173,12 154,11 C135,9 125,3 106,4 C87,6 75,12 56,11 C38,9 22,3 0,6 Z' fill='%23000'/%3E%3C/svg%3E") repeat-x bottom/300px 16px;
}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:rgba(253,248,239,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-2)}
header.site.shrunk{box-shadow:0 1px 0 var(--line-2),0 10px 26px -22px rgba(90,58,34,.8)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;
  padding-block:clamp(8px,1vw,12px);transition:padding-block .3s ease}
header.site.shrunk .nav{padding-block:6px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none}
.brand .sign-hold{width:var(--navsign,clamp(152px,15vw,206px));transition:width .3s ease}
header.site.shrunk .brand .sign-hold{--navsign:clamp(126px,12vw,168px)}
/* ---------- her logo, in the header ---------- */
.brand{gap:clamp(8px,1vw,13px)}
/* The tree is a wide, fine-lined mark. Sized off its height it holds together;
   sized off its width it vanishes, which is why the header carries the heavier
   `--mark` cut of the drawing rather than the full one. */
.brandtree{display:block;flex:none;height:var(--tree,clamp(52px,5.6vw,68px));
  aspect-ratio:1366/934;   /* hold the space so the wordmark cannot jump */
  transition:height .3s ease}
.brandtree svg{height:100%;width:100%;display:block}
.brandword{width:var(--word,clamp(104px,11vw,128px));height:auto;flex:none;
  aspect-ratio:720/346;    /* hold the box, or the nav jumps when it loads */
  transition:width .3s ease}
header.site.shrunk .brandtree{--tree:clamp(46px,4.8vw,58px)}
header.site.shrunk .brandword{--word:clamp(90px,9.2vw,110px)}

/* ---------- and in the footer, where the tree has room to read ---------- */
.footbrand{display:block}
.foottree{width:clamp(104px,12vw,132px);height:auto;display:block;margin-bottom:10px;
  aspect-ratio:900/615}
.footbrand .brandword{width:clamp(132px,15vw,164px)}
.footloc{margin-top:16px;font-size:1rem;line-height:1.7;color:rgba(58,42,25,.78)}

.markplate{
  display:inline-flex;gap:2px;padding:10px 15px 11px;border-radius:6px;
  background:linear-gradient(168deg,#E7C79C,#D0A876 62%,#BE9260);
  box-shadow:inset 0 0 0 3px rgba(255,246,228,.6),0 1px 3px rgba(90,58,34,.34);
}
.markplate b{font-family:"GrowSign",Georgia,serif;font-size:1.12rem;line-height:1;
  -webkit-text-stroke:.5px rgba(61,46,31,.45);paint-order:stroke fill}
.menu{display:flex;align-items:center;gap:2px;list-style:none}
.menu a{font-family:"Grandstander",system-ui,sans-serif;font-weight:600;font-size:.97rem;color:var(--ink-2);
  text-decoration:none;padding:8px 12px;border-radius:99px;display:block;white-space:nowrap;
  transition:background .18s,color .18s}
.menu a:hover{background:rgba(61,46,31,.05);color:var(--ink)}
.menu a[aria-current="page"]{color:var(--ink);background:rgba(46,143,146,.16)}
.mob-cta{display:none}
.burger{display:none;width:44px;height:44px;border:2px solid var(--line);border-radius:12px;
  background:var(--card);cursor:pointer;align-items:center;justify-content:center}
.burger span,.burger span::before,.burger span::after{display:block;width:17px;height:2.3px;background:var(--ink);border-radius:2px}
.burger span{position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-5.5px}.burger span::after{top:5.5px}

/* ---------- pages / sections ---------- */
.page{display:none}
.page.on{display:block;animation:pagein .45s cubic-bezier(.2,.7,.3,1) both}
@keyframes pagein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sec{padding-block:clamp(58px,7vw,100px)}
.sec.slim{padding-block:clamp(40px,5vw,68px)}
.sec.tint{background:var(--paper-2)}
.sec.deep{background:var(--bark);color:var(--paper)}
.sec.deep h1,.sec.deep h2,.sec.deep h3{color:var(--paper)}
.sec.deep p,.sec.deep .lede{color:rgba(253,248,239,.9)}
.sec.deep .eyebrow{color:var(--leaf-1)}
.sec.deep .hand{color:rgba(253,248,239,.68)}

/* ---------- section heading, balanced across the whole column ---------- */
.sechead{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(22px,4vw,58px);align-items:end}
.sechead .lede{margin-bottom:.25rem}
.sechead h2{margin-top:1.1rem}
.sechead.solo{grid-template-columns:1fr;max-width:64ch}
.sechead.mid{text-align:center;grid-template-columns:1fr;justify-items:center;row-gap:0;max-width:54rem;margin-inline:auto}
.sechead.mid h2{margin-top:.9rem}
.sechead.mid .lede{margin-bottom:0}

/* ---------- interior page head ---------- */
.pagehead{position:relative;background:var(--paper-2);overflow:hidden;
  padding-block:clamp(46px,6.5vw,84px) clamp(48px,6vw,80px)}
.pagehead::before{content:"";position:absolute;inset:auto -12% -46% auto;width:min(640px,72vw);height:640px;
  border-radius:99px;pointer-events:none;
  background:radial-gradient(circle,rgba(247,201,116,.44),rgba(240,186,96,0) 68%)}
.pagehead .wrap{position:relative;z-index:2}
.pagehead .headgrid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,4vw,56px);align-items:end}
.pagehead h1{margin-top:1.1rem}
.pagehead .lede{margin-bottom:.3rem}
.sprig{position:absolute;top:-10px;right:clamp(10px,5vw,80px);width:clamp(120px,15vw,196px);
  z-index:1;pointer-events:none;opacity:.95}
.sprig svg{width:100%;height:auto;display:block;overflow:visible}
.sprig .lf{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.15) rotate(-25deg)}
.sprig.on .lf{animation:sprout .5s cubic-bezier(.2,1.35,.4,1) forwards;animation-delay:var(--d)}

/* =============== THE SIGN =============== */
.sign-hold{position:relative;display:block;padding:9px 11px 10px;--rail:clamp(6px,4.5%,10px)}
.sign{display:block;opacity:0;transform:scale(.95)}
.sign.on{animation:signIn .8s cubic-bezier(.2,.9,.3,1) .1s forwards}
@keyframes signIn{to{opacity:1;transform:scale(1)}}
.hangs{display:block;transform-origin:50% -18%;transform:rotate(-1deg)}
.sign.on .hangs{animation:tilt 8s ease-in-out 1.3s infinite alternate}
@keyframes tilt{from{transform:rotate(-1.5deg)}to{transform:rotate(-.5deg)}}

.frame{display:block;position:relative;padding:var(--rail);border-radius:4px;
  filter:drop-shadow(0 3px 0 rgba(110,74,44,.45)) drop-shadow(0 10px 16px rgba(90,58,34,.34))}
.rail{position:absolute;background:linear-gradient(180deg,#E7C79C,#D3AB7B 46%,#C29A69)}
.rail::after{content:"";position:absolute;inset:0;opacity:.55;
  background:repeating-linear-gradient(var(--a),rgba(110,74,44,.13) 0 1.5px,transparent 1.5px 14px,rgba(255,242,218,.3) 14px 16px,transparent 16px 38px)}
.rail.t{top:0;left:0;right:0;height:var(--rail);--a:90deg;clip-path:polygon(0 0,100% 0,calc(100% - var(--rail)) 100%,var(--rail) 100%)}
.rail.b{bottom:0;left:0;right:0;height:var(--rail);--a:90deg;clip-path:polygon(var(--rail) 0,calc(100% - var(--rail)) 0,100% 100%,0 100%);
  background:linear-gradient(180deg,#BE9260,#DDBB8C)}
.rail.l{top:0;bottom:0;left:0;width:var(--rail);--a:0deg;clip-path:polygon(0 0,100% var(--rail),100% calc(100% - var(--rail)),0 100%);
  background:linear-gradient(90deg,#E9CDA5,#CFA678)}
.rail.r{top:0;bottom:0;right:0;width:var(--rail);--a:0deg;clip-path:polygon(100% 0,0 var(--rail),0 calc(100% - var(--rail)),100% 100%);
  background:linear-gradient(90deg,#BC9160,#E2C094)}
.board{display:block;position:relative;border-radius:2px;
  padding:3.6% 6% 4.6%;
  background:linear-gradient(168deg,#F8EBD1,#EFDDBB 62%,#E7D2AD);
  box-shadow:inset 0 3px 7px rgba(120,80,44,.3),inset 0 -1px 0 rgba(255,250,236,.6)}
.word{display:block;width:100%;height:auto;overflow:visible}
.sign.measuring .drop,.sign.measuring .bob{transform:none !important;animation:none !important;opacity:1 !important}
.word text{font-family:"GrowSign",Georgia,serif;paint-order:stroke fill;
  stroke:rgba(52,32,14,.66);stroke-width:3.4;stroke-linejoin:round;cursor:pointer}
.drop{opacity:0;transform-box:fill-box;transform-origin:50% 50%;transform:translateY(-46px) scale(.78)}
.sign.on .drop{animation:drop .64s cubic-bezier(.2,1.36,.4,1) forwards;animation-delay:var(--d)}
@keyframes drop{to{opacity:1;transform:translateY(0) scale(1)}}
.bob{transform-box:fill-box;transform-origin:50% 55%;transform:rotate(var(--t))}
.sign.rest .bob{animation:bob var(--dur) ease-in-out var(--del) infinite alternate}
@keyframes bob{
  from{transform:rotate(calc(var(--t) - .9deg)) translateY(0)}
  to{transform:rotate(calc(var(--t) + .9deg)) translateY(-2.5px)}
}
.sign.rest .bob:hover{animation:hop .5s cubic-bezier(.25,1.4,.4,1)}
@keyframes hop{
  0%,100%{transform:rotate(var(--t)) translateY(0)}
  40%{transform:rotate(calc(var(--t) - 7deg)) translateY(-11px) scale(1.06)}
  70%{transform:rotate(calc(var(--t) + 4deg)) translateY(-2px)}
}
.bob.pop{animation:pop .68s cubic-bezier(.22,1.4,.35,1) !important}
@keyframes pop{
  0%{transform:rotate(var(--t)) translateY(0) scale(1)}
  30%{transform:rotate(calc(var(--t) - 13deg)) translateY(-18px) scale(1.13)}
  58%{transform:rotate(calc(var(--t) + 9deg)) translateY(3px) scale(.97)}
  100%{transform:rotate(var(--t)) translateY(0) scale(1)}
}
/* two small ivy drapes, not a wreath */
.drape{position:absolute;z-index:2;pointer-events:none;width:40%}
.drape.a{top:-11px;left:-10px}
.drape.b{bottom:-10px;right:-8px;transform:rotate(180deg)}
.drape svg{width:100%;height:auto;display:block;overflow:visible}
.drape .lf{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.15) rotate(-25deg)}
.sign.on .drape .lf{animation:sprout .5s cubic-bezier(.2,1.35,.4,1) forwards;animation-delay:var(--d)}
@keyframes sprout{to{opacity:1;transform:scale(1) rotate(0deg)}}

/* =============== HERO =============== */
/* the herotext glow uses negative insets, so clip it here or it widens the page */
.hero{position:relative;overflow:hidden}
.wrap.wide{max-width:var(--wrap)}   /* kept as a no-op; every wrap is one width now */
.herotop{display:grid;grid-template-columns:1.02fr 1.14fr;gap:clamp(34px,5.2vw,80px);
  align-items:center;padding-block:clamp(52px,7vw,104px)}

.herotext{position:relative}
.herotext::before{content:"";position:absolute;inset:-42% -30% -30% -34%;pointer-events:none;
  background:radial-gradient(ellipse 62% 62% at 44% 48%,rgba(247,201,116,.5),rgba(240,186,96,0) 70%)}
.herotext>*{position:relative}
.hero h1{margin-top:1rem;font-size:clamp(2rem,3.4vw,2.85rem);line-height:1.26}
.hero h1 em{font-style:normal;position:relative;white-space:nowrap}
.hero h1 em svg{position:absolute;left:-2%;bottom:.06em;width:103%;height:.26em;overflow:visible}
.hero h1 em path{fill:none;stroke:var(--gold);stroke-width:14;stroke-linecap:round;
  stroke-dasharray:400;stroke-dashoffset:400}
.hero.lit h1 em path{animation:ink .8s ease-out 1.1s forwards}
@keyframes ink{to{stroke-dashoffset:0}}
.hero .lede{margin-top:22px;max-width:48ch}
.hero .btns{margin-top:32px}
.facts{margin-top:30px;display:flex;flex-wrap:wrap;gap:8px 18px;
  font-family:"Grandstander",system-ui,sans-serif;font-weight:600;font-size:.95rem;color:var(--ink-3)}
.facts span{display:flex;align-items:center;gap:8px}
.facts i{width:9px;height:9px;border-radius:99px;flex:none}

/* The room photograph is 2200px wide and that is all there is of it. At this
   size it renders about 1:1 on a retina screen, and a 3:2 window is the frame
   it was actually shot in, so nothing gets cropped away. */
.roomlead{position:relative;margin:0}
.roomframe{position:relative}
.roomshot{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--paper-2);
  box-shadow:0 3px 8px rgba(90,58,34,.14),0 34px 64px -40px rgba(58,42,25,.72)}
.roomshot img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;object-position:center 38%;display:block}
.roomshot::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 88% 88% at 50% 46%,transparent 66%,rgba(72,50,28,.16) 100%)}
/* The hero grid is centre-aligned, so anything that changes the height of the
   photo column re-centres the text beside it. This caption is one line of a
   webfont, so its box is pinned rather than left to the font's metrics. */
.roomlead figcaption{margin-top:18px;font-family:"Caveat",cursive;font-size:1.22rem;
  color:var(--ink-3);text-align:center;line-height:1.5;min-height:1.5em}
.roomlead figcaption a{color:var(--teal);text-underline-offset:4px}

/* =============== PHOTOS =============== */
.shot{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2);background:var(--paper-2)}
.shot img{width:100%;height:100%;object-fit:cover}
.shot.tall{aspect-ratio:3/4}
.shot.wide{aspect-ratio:16/10}
.shot.sq{aspect-ratio:1/1}
figure.pic{margin:0;position:relative}
figure.pic figcaption{margin-top:13px;font-family:"Caveat",cursive;font-size:1.22rem;color:var(--ink-3);text-align:center}

/* a photo taped to the page, the way she tapes leaves to a wall */
.snap{position:relative;background:#FFFDF6;padding:13px 13px 0;border-radius:5px;
  box-shadow:var(--sh-2);border:1px solid rgba(168,122,80,.2)}
.snap .shot{border-radius:2px;box-shadow:none}
.snap figcaption{font-family:"Caveat",cursive;font-size:1.24rem;color:var(--ink-2);
  text-align:center;padding:13px 6px 15px;margin:0;line-height:1.3}

/* =============== PEEK INSIDE =============== */
.peekframe{position:relative;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--sh-2);
  aspect-ratio:3/2;background:var(--paper-2)}
.peekpan{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform;
  transition:transform .85s cubic-bezier(.22,.72,.2,1)}
.peekpan .pl{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;transition:opacity .55s ease}
.peekpan .pl.on{opacity:1}
.spotlayer{position:absolute;inset:0;transition:opacity .35s ease}
.peek.zoomed .spotlayer{opacity:0;pointer-events:none}
.spot{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);
  width:40px;height:40px;border-radius:99px;cursor:pointer;
  border:2.5px solid rgba(255,251,242,.94);background:rgba(74,52,31,.5);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  color:#fff;font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:.95rem;
  display:grid;place-items:center;box-shadow:0 3px 10px rgba(50,34,18,.4);
  transition:transform .2s cubic-bezier(.2,.8,.3,1),background .2s}
.spot:hover,.spot:focus-visible{transform:translate(-50%,-50%) scale(1.15);background:var(--teal)}
.spot::after{content:"";position:absolute;inset:-9px;border-radius:99px;
  border:2px solid rgba(255,251,242,.55);animation:ping 2.8s ease-out infinite;animation-delay:var(--pd)}
@keyframes ping{0%{transform:scale(.72);opacity:.85}70%,100%{transform:scale(1.5);opacity:0}}
.peekfoot{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(18px,3vw,38px);
  align-items:start;margin-top:22px}
.peekcap{min-height:104px}
.peekcap .lbl{font-family:"Caveat",cursive;font-size:1.26rem;color:var(--teal)}
.peekcap h3{margin-top:2px}
.peekcap p{margin-top:8px;font-size:1.02rem;line-height:1.6}
.peekcap .in{animation:fade .34s ease both}
.peekbar{display:flex;flex-wrap:wrap;gap:8px}
.pchip{font-family:"Grandstander",system-ui,sans-serif;font-weight:600;font-size:.93rem;cursor:pointer;
  background:var(--card);border:2px solid var(--line);border-radius:99px;padding:7px 15px;
  color:var(--ink-2);transition:border-color .2s,color .2s,background .2s}
.pchip:hover{border-color:var(--bark);color:var(--ink)}
.pchip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
.pchip.reset[aria-pressed="true"]{background:var(--bark);border-color:var(--bark)}

/* =============== LINDA'S EXECUTIVE FUNCTIONING WEB =============== */
.efweb{max-width:940px;margin-inline:auto}
#web{width:100%;height:auto;display:block}
.node .lf{transform-box:fill-box;transform-origin:50% 50%;
  animation:nsway var(--dur) ease-in-out var(--del) infinite alternate}
@keyframes nsway{from{transform:translateY(-2px)}to{transform:translateY(2px)}}
.node .plate{fill:#FFFCF4;stroke:rgba(122,92,65,.42);stroke-width:2.2;
  transition:fill .25s,stroke .25s}
.node:hover .plate{fill:#FFFFFF;stroke:var(--bark)}
.node .cap{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:18px;fill:var(--ink)}
.node .blade{transform-box:fill-box;transform-origin:50% 60%;
  transition:transform .3s cubic-bezier(.2,.8,.3,1)}
.node:hover .blade{transform:scale(1.12) rotate(-7deg)}
.hub .plate{fill:#FFFCF4;stroke:var(--bark);stroke-width:3.4}
.hub .t{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:23px;fill:var(--ink);text-anchor:middle}
.stem{fill:none;stroke:#A08663;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:6 8;opacity:.75}
.tip{fill:#A08663;opacity:.75}
@media (prefers-reduced-motion:reduce){.node .lf{animation:none}}

/* =============== HANGING LEAVES =============== */
.mobile-wrap{display:grid;grid-template-columns:1.18fr .82fr;gap:clamp(22px,3.5vw,44px);align-items:center}
.bough{width:100%;height:auto;display:block;overflow:visible}
.hang{cursor:pointer}
.hang .sway{transform-box:fill-box;transform-origin:50% 0;
  animation:swing var(--dur) ease-in-out var(--del) infinite alternate}
@keyframes swing{from{transform:rotate(-2.2deg)}to{transform:rotate(2.2deg)}}
.hang .cord{stroke:#6B4A32;stroke-width:1.2;opacity:.55}
.hang .blade{transition:transform .25s ease,filter .25s ease;transform-box:fill-box;transform-origin:50% 6%}
.hang .plate{fill:#FBF3E2;stroke:#A88257;stroke-width:1.8;transition:fill .25s,stroke .25s}
.hang .plate-t{font-family:"Grandstander",system-ui,sans-serif;font-size:16px;font-weight:700;fill:#5A3F27;text-anchor:middle;pointer-events:none}
.hang:hover .blade,.hang:focus-visible .blade{transform:scale(1.06);filter:drop-shadow(0 5px 8px rgba(45,90,45,.3))}
.hang[aria-pressed="true"] .blade{transform:scale(1.1);filter:drop-shadow(0 8px 12px rgba(45,90,45,.42))}
.hang[aria-pressed="true"] .plate{fill:#FFFDF8;stroke:#5E4530;stroke-width:2.4}
.hang[aria-pressed="true"] .sway{animation:kick 1.5s cubic-bezier(.36,.07,.19,.97) both,swing var(--dur) ease-in-out 1.5s infinite alternate}
@keyframes kick{0%{transform:rotate(0)}18%{transform:rotate(-10deg)}44%{transform:rotate(7deg)}70%{transform:rotate(-3.5deg)}100%{transform:rotate(0)}}

.panelcard{background:var(--card);border:2px solid var(--line);border-radius:var(--r-lg);
  padding:26px 28px;box-shadow:var(--sh-1);min-height:214px;position:relative;overflow:hidden}
.panelcard::before{content:"";position:absolute;inset-block:0;left:0;width:7px;background:var(--c,var(--leaf-3))}
.panelcard .tagline{font-family:"Caveat",cursive;font-size:1.22rem;color:var(--c,var(--leaf-4))}
.panelcard h3{margin-top:2px}
.panelcard p{margin-top:9px;font-size:1rem;line-height:1.62}
.panelcard .in{animation:fade .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.nudge{margin-top:12px;text-align:center;font-family:"Caveat",cursive;font-size:1.22rem;color:var(--ink-3)}

/* =============== GROWTH MINDSET FLIP CARDS =============== */
.flips{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:clamp(15px,1.8vw,22px)}
.flip{perspective:1100px;border:0;background:none;padding:0;font:inherit;text-align:left;cursor:pointer}
.flip .in{display:grid;transform-style:preserve-3d;transform:rotate(var(--tilt,-1deg));
  transition:transform .62s cubic-bezier(.28,.85,.32,1)}
.flip[aria-pressed="true"] .in{transform:rotate(var(--tilt,-1deg)) rotateY(180deg)}
.flip .f,.flip .b{grid-area:1/1;-webkit-backface-visibility:hidden;backface-visibility:hidden;
  border-radius:16px;padding:18px 20px 15px 18px;min-height:126px;
  display:grid;grid-template-rows:1fr auto;gap:12px;
  box-shadow:0 2px 0 rgba(110,74,44,.13),0 12px 24px -14px rgba(110,74,44,.5)}
.flip .f{background:linear-gradient(166deg,#FFFDF6,#F4E6CD);
  border:1.5px solid rgba(168,122,80,.34);border-left:7px solid var(--c,var(--leaf-2))}
.flip .b{transform:rotateY(180deg);
  background:linear-gradient(166deg,rgba(255,255,255,.46),rgba(255,255,255,0) 60%),var(--c,var(--leaf-1));
  border:1.5px solid rgba(24,64,28,.26);border-left:7px solid rgba(24,64,28,.3)}
.flip .said{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:1.08rem;line-height:1.28;color:var(--ink)}
.flip .instead{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:1.08rem;line-height:1.28;color:#1F3A16}
.flip .turn{justify-self:end;align-self:end;width:30px;height:30px;border-radius:99px;flex:none;
  display:grid;place-items:center;transition:transform .3s cubic-bezier(.2,.8,.3,1)}
.flip .f .turn{background:var(--c,var(--leaf-2));border:1.5px solid rgba(24,64,28,.2)}
.flip .b .turn{background:rgba(255,255,255,.55);border:1.5px solid rgba(24,64,28,.2)}
.flip .turn svg{width:15px;height:15px;display:block}
.flip .f .turn svg{stroke:#FFFDF6}
.flip .b .turn svg{stroke:#2C5122}
.flip:hover .in{transform:rotate(0deg) translateY(-3px)}
.flip[aria-pressed="true"]:hover .in{transform:rotate(0deg) translateY(-3px) rotateY(180deg)}
.flip:hover .turn{transform:rotate(-40deg)}

/* =============== QUOTE =============== */
.pull{text-align:center;position:relative;overflow:hidden}
.pull::before{content:"";position:absolute;width:760px;height:760px;border-radius:99px;top:-62%;left:-14%;
  background:radial-gradient(circle,rgba(168,206,106,.09),transparent 68%);pointer-events:none}
.pull .wrap{position:relative;z-index:1}
.pull blockquote{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;color:var(--paper);
  font-size:clamp(1.45rem,3.1vw,2.3rem);line-height:1.3;max-width:17em;margin-inline:auto;letter-spacing:-.015em}
.pull .who{margin-top:20px;font-family:"Caveat",cursive;font-size:1.32rem;color:rgba(253,248,239,.68)}

/* =============== CARDS =============== */
.grid{display:grid;gap:clamp(22px,3vw,40px)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.tile{padding:22px 26px 4px 0;border-top:2px solid var(--line);position:relative}
.tile::before{content:"";position:absolute;top:-2px;left:0;width:46px;height:2px;background:var(--c,var(--teal))}
.tile h3{margin-top:12px}
.tile p{margin-top:7px;font-size:1rem;line-height:1.62}
.tile .mark{width:30px;height:46px;display:block}
.tile .mark svg{width:100%;height:100%;display:block}

.card{background:var(--card);border-radius:var(--r-lg);padding:clamp(24px,2.6vw,32px);
  box-shadow:var(--sh-3);border:1px solid rgba(168,122,80,.16);position:relative;overflow:hidden;
  transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--c,var(--teal))}
.card:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.card .mark{width:27px;height:42px;display:block;margin-bottom:14px}
.card .mark svg{width:100%;height:100%;display:block}
.card h3{margin-top:2px}
.card p{margin-top:9px;font-size:1rem;line-height:1.62}
.card .num{font-family:"Caveat",cursive;font-size:1.95rem;font-weight:700;color:var(--c,var(--teal));line-height:1;display:block;margin-bottom:6px}

.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{background:var(--card);border:2px solid var(--line);border-radius:99px;padding:7px 16px;
  font-family:"Grandstander",system-ui,sans-serif;font-weight:600;font-size:.94rem;color:var(--ink-2)}
.chip i{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:8px;background:var(--c,var(--leaf-2))}

.steps{counter-reset:s}
.stepitem{display:grid;grid-template-columns:auto 1fr;gap:22px;padding-block:28px;border-top:1px solid var(--line)}
.stepitem:last-child{border-bottom:1px solid var(--line)}
.stepitem .n{counter-increment:s;font-family:"Caveat",cursive;font-size:2rem;font-weight:700;color:var(--c,var(--teal));line-height:1}
.stepitem .n::before{content:counter(s)}
.stepitem p{margin-top:7px;max-width:58ch}

.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4.5vw,60px);align-items:center}
.duo.top{align-items:start}
.duo.lean{grid-template-columns:.86fr 1.14fr}
.duo.lean-r{grid-template-columns:1.14fr .86fr}

.invite{background:var(--bark);border-radius:var(--r-lg);padding:clamp(34px,5.5vw,64px);
  text-align:center;color:var(--paper);position:relative;overflow:hidden}
.invite h2{color:var(--paper);max-width:15em;margin-inline:auto}
.invite p{color:rgba(253,248,239,.8);max-width:38em;margin:14px auto 0}
.invite::after{content:"";position:absolute;width:520px;height:520px;border-radius:99px;top:-46%;right:-10%;
  background:radial-gradient(circle,rgba(242,203,58,.2),transparent 66%);pointer-events:none}
.invite>*{position:relative;z-index:1}

.story>p+p{margin-top:1.15rem}
.story p{font-size:1.06rem;line-height:1.75}

/* =============== LINDA'S PATH =============== */
.pathwrap{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(30px,5vw,66px);
  align-items:start;margin-top:clamp(28px,4vw,46px)}
.pathside{position:sticky;top:118px}
.path{position:relative;display:grid}
.path::before{content:"";position:absolute;left:16px;top:12px;bottom:16px;width:3px;border-radius:3px;
  background:linear-gradient(180deg,var(--leaf-1),var(--leaf-3) 45%,var(--leaf-5))}
.stop{position:relative;padding:0 0 clamp(26px,3.4vw,40px) clamp(50px,5vw,68px)}
.stop:last-child{padding-bottom:0}
.stop .dot{position:absolute;left:0;top:0;width:35px;height:35px}
.stop .dot svg{width:100%;height:100%;display:block;filter:drop-shadow(0 2px 3px rgba(60,90,40,.3))}
.stop .when{font-family:"Caveat",cursive;font-size:1.28rem;font-weight:700;color:var(--cw,var(--leaf-5));line-height:1.2}
.stop h3{margin-top:1px}
.stop p{margin-top:8px;max-width:60ch}

/* =============== QUOTE CARD =============== */
.saycard{background:var(--card);border-radius:var(--r-lg);padding:clamp(28px,3vw,40px);
  box-shadow:var(--sh-3);border:1px solid rgba(168,122,80,.16);position:relative}
.saycard::before{content:"\201C";position:absolute;top:4px;left:20px;font-family:"Grandstander",system-ui,sans-serif;
  font-size:5rem;line-height:1;color:rgba(46,143,146,.2)}
.saycard p{position:relative;font-size:clamp(1.06rem,1.4vw,1.24rem);line-height:1.6;color:var(--ink)}
.saycard .by{margin-top:15px;font-family:"Caveat",cursive;font-size:1.26rem;color:var(--ink-3)}

.cite{display:block;margin-top:7px;font-family:"Grandstander",system-ui,sans-serif;font-size:.82rem;
  letter-spacing:.03em;color:var(--ink-3)}
.refs{list-style:none;display:grid;gap:11px;max-width:76ch;
  border-top:1px solid var(--line);padding-top:22px}
.refs li{font-size:.97rem;line-height:1.55;color:var(--ink-2);padding-left:20px;position:relative}
.refs li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:99px;
  background:var(--leaf-2)}
.g4 .tile h3{margin-top:0}

/* =============== FAQ =============== */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding-block:20px;display:flex;gap:15px;align-items:flex-start;
  font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:1.08rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{flex:none;font-family:"Caveat",cursive;font-size:1.6rem;font-weight:700;
  color:var(--teal);line-height:1;margin-top:1px;width:20px}
.faq summary::after{content:"";margin-left:auto;flex:none;width:10px;height:10px;margin-top:8px;
  border-right:2.4px solid var(--ink-3);border-bottom:2.4px solid var(--ink-3);transform:rotate(45deg);transition:transform .22s}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .ans{padding:0 0 22px 35px;max-width:68ch}
.faq .ans p+p{margin-top:.9rem}

/* =============== FORM =============== */
.form{display:grid;gap:15px;background:var(--card);border-radius:var(--r-lg);
  padding:clamp(24px,3vw,34px);box-shadow:var(--sh-3);border:1px solid rgba(168,122,80,.16)}
.field{display:grid;gap:6px}
.field label{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:.96rem;color:var(--ink-2)}
.field input,.field textarea,.field select{
  font-family:"Newsreader",serif;font-size:1rem;color:var(--ink);background:var(--paper);
  border:2px solid var(--line);border-radius:14px;padding:12px 14px;width:100%;
  transition:border-color .18s,box-shadow .18s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(46,143,146,.16)}
.field textarea{min-height:126px;resize:vertical}
.note{font-family:"Caveat",cursive;font-size:1.16rem;color:var(--ink-3);transition:color .2s}
.note.ok{color:var(--leaf-5)}
.note.bad{color:#B4523A}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.field input:user-invalid,.field textarea:user-invalid{border-color:#C9765C}
.form.sending{opacity:.72;pointer-events:none}
.deets{list-style:none;display:grid;gap:20px}
.deets li{display:grid;gap:2px}
.deets .k{font-family:"Grandstander",system-ui,sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}
.deets .v{font-size:1.06rem}
.deets a{text-decoration-color:var(--teal);text-underline-offset:4px}

.booking{background:var(--bark);color:var(--paper);border-radius:var(--r-lg);
  padding:clamp(26px,3.2vw,38px);position:relative;overflow:hidden}
.booking::after{content:"";position:absolute;width:440px;height:440px;border-radius:99px;top:-58%;right:-18%;
  background:radial-gradient(circle,rgba(242,203,58,.26),transparent 66%);pointer-events:none}
.booking>*{position:relative;z-index:1}
.booking h3{color:var(--paper);font-size:clamp(1.24rem,1.8vw,1.5rem)}
.booking p{color:rgba(253,248,239,.82);margin-top:10px;font-size:1.02rem;line-height:1.6}
.booking .btn{margin-top:22px}

/* =============== FOOTER =============== */
footer.site{background:var(--bark);color:rgba(253,248,239,.82);padding:56px 0 34px;font-size:1rem;position:relative}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px}
footer.site h4{font-family:"Caveat",cursive;font-size:1.34rem;font-weight:700;color:var(--leaf-1);margin-bottom:12px}
footer.site ul{list-style:none;display:grid;gap:9px}
footer.site a{color:rgba(253,248,239,.84);text-decoration:none}
footer.site a:hover{color:var(--paper);text-decoration:underline;text-underline-offset:4px}
.footbar{margin-top:44px;padding-top:20px;border-top:1px solid rgba(253,248,239,.16);
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:.88rem;color:rgba(253,248,239,.52)}

/* =============== REVEAL =============== */
.rise{opacity:0;transform:translateY(18px)}
.rise.seen{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}

/* The bands take their colour from the header of Linda's own guide: a warm
   terracotta read with dark ink, rather than cream on brown. Much softer than
   a slab, and it matches the printed material families already have. */
.sec.deep,.invite,.booking,footer.site{
  background-color:var(--band);
  background-image:var(--grain),linear-gradient(168deg,rgba(255,255,255,.12),rgba(0,0,0,.05));
  color:rgba(58,42,25,.84);
}
.sec.deep h1,.sec.deep h2,.sec.deep h3,
.invite h2,.booking h3,.pull blockquote{color:var(--ink)}
.sec.deep p,.sec.deep .lede,.invite p,.booking p{color:rgba(58,42,25,.84)}
.sec.deep .eyebrow{color:var(--ink)}
.sec.deep .hand,.pull .who{color:rgba(58,42,25,.72)}
.pull::before{background:radial-gradient(circle,rgba(255,255,255,.3),transparent 68%)}
.invite::after,.booking::after{background:radial-gradient(circle,rgba(255,255,255,.34),transparent 66%)}

/* gold on terracotta is nearly invisible, so the band CTAs go teal */
.invite .btn.sun,.booking .btn.sun{background:var(--teal);color:#fff;box-shadow:0 3px 0 var(--teal-dk)}
.invite .btn.sun:hover,.booking .btn.sun:hover{background:#36B2A4;box-shadow:0 5px 0 var(--teal-dk)}
.btn.edge{border-color:rgba(58,42,25,.4);color:var(--ink)}
.btn.edge:hover{border-color:var(--ink);background:rgba(58,42,25,.08)}

footer.site{color:rgba(58,42,25,.82)}
footer.site h4{color:#1E4423}
footer.site a{color:rgba(58,42,25,.86)}
footer.site a:hover{color:var(--ink)}
footer.site .markplate{background:linear-gradient(168deg,#FBF2DE,#EFDDBB 62%,#E4CFA8);
  box-shadow:inset 0 0 0 3px rgba(255,252,244,.85),0 2px 5px rgba(90,58,34,.28)}
footer.site p{color:rgba(58,42,25,.8) !important}
.footbar{border-top-color:rgba(58,42,25,.22);color:rgba(58,42,25,.62)}
footer.site a.ig{display:inline-flex;align-items:center;gap:8px}
footer.site a.ig svg{width:17px;height:17px;flex:none}

/* =============== THE TREE, GROWING =============== */
/* Linda's own drawing, revealed by a wavefront centred where the trunk meets
   the ground. Every branch radiates from that point, so the reveal runs up the
   trunk and out along the limbs on its own. Tracing her strokes and drawing
   them in would be closer still, but the trace only ever covered 56% of the
   artwork; this cannot miss a part of it. */
/* the circle's own centre sits on the trunk base, so it must scale from there;
   scaling from the bottom of its box grows the wave from below the artwork */
.brandtree .gswave{transform-box:fill-box;transform-origin:50% 50%;transform:scale(0)}
.brandtree.on .gswave{animation:gsgrow 1.5s cubic-bezier(.3,.66,.36,1) .12s both}
@keyframes gsgrow{to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .brandtree .gswave{transform:scale(1)}
  .brandtree.on .gswave{animation:none}
}

/* =============== RESPONSIVE =============== */
@media (max-width:1080px){
  .menu a{padding:8px 10px;font-size:.94rem}
}
@media (max-width:960px){
  .menu,.nav .btn{display:none}
  .burger{display:flex}
  .nav.open .menu{display:flex;flex-direction:column;align-items:stretch;gap:2px;
    position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--card);border:2px solid var(--line);
    border-radius:var(--r-lg);padding:11px;box-shadow:var(--sh-2);z-index:60}
  .nav.open .menu a{padding:12px 14px;border-radius:13px}
  .mob-cta{display:block;margin-top:5px;border-top:1px solid var(--line-2);padding-top:7px}
  .mob-cta a{background:var(--teal);color:#fff;text-align:center}
  .mob-cta a:hover{background:#36B2A4;color:#fff}
  .duo,.duo.lean,.duo.lean-r,.mobile-wrap,.sechead,.pagehead .headgrid,.peekfoot,.pathwrap,.herotop{grid-template-columns:1fr}
  .pathside{position:static;max-width:440px;margin-top:8px}
  .sechead .lede,.pagehead .lede{margin-bottom:0}
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:1fr 1fr}
  .sprig{opacity:.5;right:-4px;width:clamp(110px,17vw,150px)}
  .spot{width:34px;height:34px;font-size:.88rem}
}
@media (max-width:680px){
  body{font-size:18px}
  .roomshot img{aspect-ratio:4/3}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .stepitem{grid-template-columns:1fr;gap:4px}
  .foot{grid-template-columns:1fr;gap:28px}
  .faq .ans{padding-left:0}
  .sprig{display:none}
  .pinned{transform:none}
  }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html{scroll-behavior:auto}
  .rise{opacity:1;transform:none}
  .sign{opacity:1;transform:none}
  .drop{opacity:1;transform:none}
  .bob{transform:rotate(var(--t))}
  .drape .lf,.sprig .lf{opacity:1;transform:scale(1)}
  .hero h1 em path{stroke-dashoffset:0}
}