html,body{overflow-x:clip}
/* Concept: a consulting room at dusk. Evening falls as you arrive, a lamp comes on,
   and a single hand-drawn line (Winnicott's squiggle) is drawn in lamplight through the house.
   Patients follow the lamp (amber). Clinicians follow the garden (sage). */
:root{
  --night:#120e0b; --night-2:#1b1511; --night-3:#251d17;
  --cream:#efe4cf; --cream-2:#c4b69c; --cream-3:#8d8170;
  --paper:#f1e7d4; --paper-2:#e8dcc4; --ink:#1d1813; --ink-2:#4a4035; --ink-3:#7b6e5c;
  --amber:#e2b673; --amber-2:#f0c98a; --amber-deep:#a8762f; --wine:#8c2f1e;
  --sage:#8fa383; --sage-deep:#56684d; --fill:#f5d76e;
  --display:"Cormorant Garamond",Georgia,serif;
  --serif:"Newsreader",Georgia,serif;
  --sans:"Work Sans","Helvetica Neue",Arial,sans-serif;
  --hand:"Reenie Beanie","Bradley Hand",cursive;
  --max:1200px; --text:640px; --nav-h:90px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
main [id]{scroll-margin-top:var(--nav-h)}
html{scroll-behavior:smooth}
html,body{margin:0}
body{background:var(--night);color:var(--cream);font-family:var(--serif);font-size:22px;line-height:1.66;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.08;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
img{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:clamp(18px,4.5vw,56px)}
.narrow{max-width:var(--text)}
h1,h2,h3{font-family:var(--display);font-weight:300;line-height:1.04;letter-spacing:-.01em;margin:0;text-wrap:balance}
h1{font-size:clamp(3rem,7.4vw,6.4rem)}
h2{font-size:clamp(2.3rem,4.8vw,4.1rem)}
h3{font-size:1.65rem;font-weight:400;line-height:1.15}
h1 em,h2 em,h3 em{font-style:italic;color:var(--amber)}
.paper h1,.paper h2{font-weight:500}
.paper h1 em,.paper h2 em,.paper h3 em{color:#7a2615;font-weight:400}
.cap{font-family:var(--sans);font-size:clamp(.9rem,1.3vw,1.05rem);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--cream);margin:0 0 22px}
.paper .cap{color:#7a2615;font-size:clamp(.95rem,1.4vw,1.12rem);font-weight:700;letter-spacing:.2em;display:flex;align-items:center;gap:16px}
.paper .cap::before{content:"";flex:0 0 44px;height:2px;background:#7a2615}
.hand{font-family:var(--hand);font-weight:400;letter-spacing:.01em;line-height:1.1}
.lede{font-size:1.28rem;color:var(--cream-2)}
.paper .lede{color:var(--ink-2)}
.dim{color:#ddd1ba}
.paper .dim{color:#2a221a}
.opening .dim{font-size:1.4rem;line-height:1.62}
@media (max-width:600px){body{font-size:19.5px}.opening .dim{font-size:1.2rem}}
mark.fill{background:var(--fill);color:var(--ink);padding:0 .25em;border-radius:3px}
.sel{user-select:all}
.small{font-size:.92rem;color:var(--cream-3)}
.paper .small{color:var(--ink-3)}
.small a{color:var(--amber)}
.paper .small a{color:var(--wine)}

section{padding-block:clamp(90px,12vw,160px);position:relative}
.paper{background:var(--paper);color:var(--ink)}
.paper::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 20% 0%,rgba(226,182,115,.28),transparent 70%)}
.paper > *{position:relative}

/* ---------- buttons: the lamp and the garden ---------- */
.btn{display:inline-flex;align-items:center;gap:.65em;font-family:var(--sans);font-size:.88rem;font-weight:400;letter-spacing:.02em;text-decoration:none;border-radius:999px;padding:1em 1.75em;border:1px solid transparent;cursor:pointer;transition:transform .25s ease,background .25s ease,box-shadow .35s ease;line-height:1.2;background:none}
.btn:hover{transform:translateY(-2px)}
.btn-p{background:var(--amber);color:#1a130b;box-shadow:0 0 0 rgba(226,182,115,0)}
.btn-p:hover{background:var(--amber-2);box-shadow:0 0 40px -6px rgba(226,182,115,.65)}
.btn-p::before{content:"";width:.5em;height:.5em;border-radius:50%;background:#1a130b;opacity:.45}
.btn-c{border-color:rgba(143,163,131,.85);color:var(--sage)}
.btn-c:hover{background:rgba(143,163,131,.12)}
.paper .btn-c{border-color:var(--sage-deep);color:var(--sage-deep)}
.btn-c::before{content:"";width:.75em;height:.48em;border:1px solid currentColor;border-radius:1px}
.btn-q{border-color:rgba(239,228,207,.35);color:var(--cream)}
.paper .btn-q{border-color:rgba(29,24,19,.35);color:var(--ink)}
.link{font-family:var(--sans);font-size:.88rem;text-decoration:none;color:var(--amber);border-bottom:1px solid currentColor;padding-bottom:2px}
.paper .link{color:var(--wine)}
.link.c{color:var(--sage)}
.paper .link.c{color:var(--sage-deep)}
.actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.for{font-family:var(--hand);font-size:clamp(2.3rem,3.4vw,2.8rem);line-height:1;margin:0 0 14px;-webkit-text-stroke:.9px currentColor;letter-spacing:.02em}
.for.p{color:var(--amber)}
.paper .for.p{color:var(--wine)}
.for.c{color:var(--sage)}
.paper .for.c{color:var(--sage-deep)}

/* ---------- header ---------- */
header.site{background:linear-gradient(180deg,rgba(12,9,7,.72),rgba(12,9,7,.35) 70%,rgba(12,9,7,0));position:fixed;top:0;left:0;right:0;z-index:60;transition:background .5s ease,backdrop-filter .5s;padding-top:env(safe-area-inset-top,0px)}
header.site.solid{background:rgba(18,14,11,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.nav{display:flex;align-items:center;gap:26px;height:var(--nav-h);text-shadow:0 1px 14px rgba(0,0,0,.6)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;min-width:0}
.brand img{width:62px;height:62px;border-radius:50%}
@media (max-width:600px){.brand img{width:48px;height:48px}}
.brand span{font-family:var(--sans);font-size:.92rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;white-space:nowrap}
nav.primary{display:flex;gap:28px}
nav.primary a{white-space:nowrap;font-family:var(--sans);font-size:.98rem;font-weight:600;text-decoration:none;color:var(--cream);opacity:.92;padding:6px 0;border-bottom:1px solid transparent}
nav.primary a:hover,nav.primary a.current{opacity:1;border-color:var(--amber)}
nav.primary a.pat,nav.primary a.clin{color:#b9d0a9;font-size:1.12rem;opacity:1}
nav.primary a.clin.current,nav.primary a.pat.current{border-color:#b9d0a9}
.nav .btn{padding:.8em 1.35em;font-size:.92rem;font-weight:600;text-shadow:none}
.menu-btn{display:none;font-family:var(--sans);font-size:.8rem;letter-spacing:.08em;background:none;border:1px solid rgba(239,228,207,.4);color:var(--cream);border-radius:999px;padding:.6em 1.1em;cursor:pointer}
@media (max-width:1180px){nav.primary{display:none}.menu-btn{display:inline-block}}
@media (max-width:600px){.nav .btn{display:none}.brand span{font-size:.78rem;letter-spacing:.2em}}
.drawer{position:fixed;inset:0;z-index:80;background:var(--night);padding:calc(env(safe-area-inset-top,0px) + 22px) clamp(18px,5vw,40px) 40px;display:flex;flex-direction:column;overflow:auto}
.drawer::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 80%,rgba(226,182,115,.18),transparent 50%)}
.drawer > *{position:relative}
.drawer .close{align-self:flex-end;font-family:var(--sans);font-size:.8rem;background:none;border:1px solid rgba(239,228,207,.4);color:var(--cream);border-radius:999px;padding:.55em 1.1em;cursor:pointer;margin-bottom:20px}
.drawer a.d{font-family:var(--display);font-weight:300;font-size:2.4rem;text-decoration:none;padding:8px 0;border-bottom:1px solid rgba(239,228,207,.1)}
.drawer .grp{margin-top:30px;display:grid;gap:10px}
.drawer .btn{justify-content:center}

/* ---------- the dusk stage (home) ---------- */
.stage{height:210vh;position:relative;padding:0}
.sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.photo{position:absolute;inset:-4%;background:url("img/087638d7be.jpg") center/cover no-repeat;transform:scale(calc(1 + var(--p,0)*.07));filter:brightness(calc(1.04 - var(--p,0)*.64)) saturate(calc(1 - var(--p,0)*.35)) contrast(1.05);will-change:transform,filter}
.dusk{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,30,58,calc(var(--p,0)*.55)),rgba(18,14,11,calc(.28 + var(--p,0)*.5)))}
.lamp{position:absolute;inset:0;opacity:var(--lamp,0);background:radial-gradient(circle at 23% 57%,rgba(255,196,110,.62),rgba(255,170,80,.22) 17%,rgba(255,160,70,0) 42%);mix-blend-mode:screen}
.vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,transparent 42%,rgba(0,0,0,.7))}
.lines{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:0 20px}
.line{grid-area:1/1;font-family:var(--display);font-weight:300;font-size:clamp(2.8rem,7.5vw,6.6rem);line-height:1.02;opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1.2s ease;text-shadow:0 2px 36px rgba(0,0,0,.5);max-width:14ch;margin:0}
.line.on{opacity:1;transform:none}
.line em{font-style:italic;color:var(--amber)}
.line .cap{color:var(--cream-2);text-shadow:none;margin-bottom:26px}
.cap.addr-lg{font-size:clamp(.95rem,1.6vw,1.2rem);font-weight:600;letter-spacing:.24em;color:var(--cream);text-shadow:0 1px 14px rgba(0,0,0,.6);margin-bottom:26px}
.line .cap.addr{font-size:clamp(.95rem,1.6vw,1.2rem);font-weight:600;letter-spacing:.24em;color:var(--cream);text-shadow:0 1px 14px rgba(0,0,0,.6);margin-bottom:30px}
.line.final{max-width:none}
.line.final .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:40px;font-size:1rem}
.cue{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);font-family:var(--sans);font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cream-2);opacity:calc(1 - var(--p,0)*6);text-align:center}
.cue::after{content:"";display:block;width:1px;height:42px;background:var(--cream-2);margin:12px auto 0;animation:cue 2.2s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}

/* ---------- squiggle in lamplight ---------- */
.play{min-height:max(640px,100svh);overflow:hidden;padding:0}
.play .bg{position:absolute;inset:0;background:url("img/087638d7be.jpg") center/cover;filter:brightness(.36) saturate(.65)}
.play .glow{position:absolute;inset:0;background:radial-gradient(circle at 23% 57%,rgba(255,190,105,.34),transparent 45%);mix-blend-mode:screen}
.play canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;cursor:crosshair;touch-action:none}
.play canvas[data-draw="off"]{touch-action:pan-y;cursor:default}
.play .copy{position:relative;z-index:3;pointer-events:none;padding-top:clamp(110px,16vh,170px);max-width:560px}
.play .copy a{pointer-events:auto}
.play h2{margin-bottom:20px}
.play .copy p.dim{color:var(--cream);font-size:1.22rem;line-height:1.65;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 24px rgba(0,0,0,.85)}
.play .glow::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,9,7,.82) 0%,rgba(12,9,7,.6) 38%,rgba(12,9,7,0) 62%)}
@media (max-width:1100px){.play .glow::after{background:linear-gradient(180deg,rgba(12,9,7,.85) 0%,rgba(12,9,7,.55) 50%,rgba(12,9,7,0) 75%)}}
.sq-cap{position:absolute;z-index:3;font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2vw,1.75rem);letter-spacing:.01em;color:var(--amber-2);opacity:0;transition:opacity 1.6s ease;pointer-events:none;white-space:nowrap;margin:0;text-shadow:0 0 18px rgba(0,0,0,.8)}
.hint-draw{position:absolute;z-index:3;right:clamp(18px,4.5vw,56px);bottom:34px;margin:0;font-family:var(--sans);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-3);pointer-events:none}
@media (max-width:760px){.hint-draw{display:none}}
.sq-cap.show{opacity:1}
.prompt{position:absolute;z-index:3;right:clamp(16px,8vw,130px);top:clamp(130px,22vh,220px);font-size:2.2rem;color:var(--amber);transform:rotate(-4deg);pointer-events:none;transition:opacity .6s}
.prompt svg{display:block;margin:4px 0 0 auto;width:90px;height:58px}
.prompt path{fill:none;stroke:var(--amber);stroke-width:2;stroke-linecap:round}
.play .tool{position:absolute;z-index:4;bottom:30px;font-family:var(--sans);font-size:.8rem;background:rgba(18,14,11,.72);border:1px solid rgba(239,228,207,.35);color:var(--cream);border-radius:999px;padding:.6em 1.2em;cursor:pointer}
.play .again{right:clamp(16px,4.5vw,56px)}
.play .drawmode{left:clamp(16px,4.5vw,56px);display:none}
.play .wq{position:absolute;z-index:3;left:clamp(18px,4.5vw,56px);bottom:34px;max-width:52%;font-family:var(--sans);font-size:.74rem;letter-spacing:.04em;color:var(--cream-3)}
@media (max-width:760px){.play .drawmode{display:inline-block}.play .wq{display:none}.prompt{top:auto;bottom:96px;font-size:1.8rem}}

/* the gold thread between rooms */
.thread{display:block;width:100%;height:110px;margin:-55px 0;position:relative;z-index:5;pointer-events:none;overflow:visible}
.thread path{fill:none;stroke:var(--amber);stroke-width:1.5;stroke-linecap:round;opacity:.75;stroke-dasharray:1;stroke-dashoffset:0;filter:drop-shadow(0 0 6px rgba(226,182,115,.6))}
.thread.armed path{stroke-dashoffset:1}
.thread.armed.on path{stroke-dashoffset:0;transition:stroke-dashoffset 2.4s cubic-bezier(.45,.05,.3,1)}

/* ---------- home sections ---------- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,7vw,110px)}
.two > *{min-width:0}
@media (max-width:820px){.two{grid-template-columns:1fr}}
.opening h3{font-family:var(--display);font-style:italic;font-weight:700;font-size:clamp(2rem,3.1vw,2.6rem);color:#7a2615;margin-bottom:16px}
.opening .note{font-size:1.9rem;color:var(--wine);transform:rotate(-2deg);margin-top:30px}

.letter{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,7vw,110px);align-items:start}
.letter > *{min-width:0}
@media (max-width:860px){.letter{grid-template-columns:1fr}}
.arch{border-radius:14px;overflow:hidden;position:relative}
.arch img{width:100%;height:100%;object-fit:cover}
.lit{position:relative}
.lit::before{content:"";position:absolute;inset:-18% -25% -10%;background:radial-gradient(circle at 40% 45%,rgba(226,182,115,.32),transparent 62%);z-index:-1;pointer-events:none}
.letter .arch{aspect-ratio:4/5;max-width:380px}
.letter-body p{color:#ece2cd;font-size:1.12rem;line-height:1.75}
.letter-body .first::first-letter{font-family:var(--display);font-size:4.4em;float:left;line-height:.8;padding:8px 12px 0 0;color:var(--amber)}
details.more summary{cursor:pointer;list-style:none;font-family:var(--sans);font-size:1.08rem;font-weight:600;color:var(--amber);display:inline-flex;gap:.6em;margin:6px 0 24px;padding:.55em 1.2em;border:1px solid rgba(226,182,115,.55);border-radius:999px}
details.more summary:hover{background:rgba(226,182,115,.12)}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"+"}
details.more[open] summary::after{content:"\2212"}
.letter-body .sig,.sig{font-family:var(--hand);font-size:clamp(3.2rem,5vw,4.2rem);color:var(--amber);margin:28px 0 4px;line-height:1}

.path{list-style:none;padding:0;margin:60px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,40px);position:relative;counter-reset:s}
.path::before{content:"";position:absolute;left:0;right:0;top:9px;height:1px;background:linear-gradient(90deg,var(--amber),rgba(226,182,115,.15))}
.path li{position:relative;padding-top:40px;min-width:0;counter-increment:s}
.path li::before{content:"";position:absolute;top:0;left:0;width:19px;height:19px;border-radius:50%;background:var(--amber);box-shadow:0 0 22px 4px rgba(226,182,115,.45)}
.path li::after{content:"0" counter(s);position:absolute;top:-2px;left:32px;font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;color:var(--cream-3)}
.path h3{font-size:1.6rem;margin-bottom:8px}
.path p{font-size:1rem;color:var(--cream-2)}
@media (max-width:860px){.path{grid-template-columns:1fr 1fr;row-gap:40px}}
@media (max-width:520px){.path{grid-template-columns:1fr}}

.commit{display:grid;grid-template-columns:auto 1fr;gap:clamp(30px,7vw,110px);align-items:center}
.commit > *{min-width:0}
.big{font-family:var(--display);font-weight:300;font-size:clamp(6rem,15vw,12rem);line-height:.8;color:var(--wine);letter-spacing:-.04em}
.big small{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3);margin-top:18px}
@media (max-width:720px){.commit{grid-template-columns:1fr}}

/* the shelf behind the chair */
.shelf-sec{overflow:hidden}
.shelf-sec::before{content:"";position:absolute;left:50%;top:38%;width:1000px;height:700px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(226,182,115,.2),transparent 62%);pointer-events:none}
.shelf{display:flex;align-items:flex-end;gap:5px;overflow-x:auto;padding:46px 6px 0;border-bottom:12px solid #3d2c1f;box-shadow:0 18px 22px -16px rgba(0,0,0,.9);scrollbar-width:thin;scrollbar-color:#3d2c1f transparent;position:relative}
.spine{flex:0 0 auto;width:var(--w,54px);height:var(--h,260px);background:var(--c,#6b4a2f);color:#f3ead8;border:0;border-radius:3px 3px 0 0;padding:14px 0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:space-between;font-family:var(--display);position:relative;transition:transform .3s ease,filter .3s;box-shadow:inset -7px 0 12px -6px rgba(0,0,0,.4),inset 3px 0 0 rgba(255,255,255,.12);filter:none}
.spine:hover,.spine[aria-pressed="true"]{transform:translateY(-16px);filter:brightness(1.12)}
.spine .ttl{writing-mode:vertical-rl;transform:rotate(180deg);font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:calc(100% - 50px)}
.spine.se{width:30px;height:292px;background:#24386a;padding:12px 0 10px;box-shadow:inset -5px 0 8px -5px rgba(0,0,0,.45),inset 2px 0 0 rgba(255,255,255,.1)}
.spine.se::before{top:18px;background:#d9b46a;height:3px}
.spine.se::after{content:"";position:absolute;left:0;right:0;bottom:30px;height:2px;background:#d9b46a}
.spine.se .ttl{font-family:var(--sans);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#e9d3a0}
.spine.se .au{font-size:.7rem;letter-spacing:.04em;font-family:var(--display);color:#e9d3a0}
.shelf .gap{flex:0 0 18px}
.bookend{flex:0 0 auto;width:14px;height:200px;margin:0 14px 0 10px;background:linear-gradient(90deg,#4a3526,#2e2118);border-radius:3px 3px 0 0;box-shadow:inset -3px 0 6px rgba(0,0,0,.5)}
.spine .au{font-family:var(--sans);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;writing-mode:vertical-rl;transform:rotate(180deg)}
.spine::before{content:"";position:absolute;left:0;right:0;top:22px;height:2px;background:rgba(232,198,140,.5)}
.spine.fav::after{content:none;display:none;position:absolute;top:-30px;font-size:1rem;color:var(--amber);text-shadow:0 0 12px rgba(226,182,115,.8)}
.shelf-card{margin-top:34px;min-height:150px;max-width:760px}
.shelf-card .k{font-family:var(--hand);font-size:1.9rem;color:var(--amber);margin:0 0 4px;line-height:1}
.shelf-card h3{font-style:italic;font-size:2.1rem;margin-bottom:6px}
.shelf-card .by{font-family:var(--sans);font-size:.8rem;letter-spacing:.06em;color:var(--cream-3);margin-bottom:12px}
.shelf-card p{color:var(--cream-2);margin:0}
.hint{font-family:var(--sans);font-size:.76rem;color:var(--cream-3);margin-top:12px}

.people{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.person{text-decoration:none;min-width:0;display:block}
.person .arch{aspect-ratio:4/5;margin-bottom:18px;transition:transform .5s ease}
.person .arch img{filter:saturate(.85)}
.person:hover .arch{transform:translateY(-6px)}
.person h3{font-size:1.75rem;font-weight:600}
.person p{font-family:var(--sans);font-size:.88rem;color:var(--ink-2);margin:6px 0 0}
@media (max-width:760px){.people{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.people{grid-template-columns:1fr}.person .arch{max-width:300px}}

.river{min-height:86vh;display:flex;align-items:flex-end;overflow:hidden}
.river .bg{position:absolute;inset:0;background:url("img/eb9efc8cdf.jpg") center/cover;filter:brightness(.62) saturate(.85)}
.river .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,14,11,.15),rgba(18,14,11,.85))}
.river .wrap{position:relative;width:100%}

.doors{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(239,228,207,.12);border:1px solid rgba(239,228,207,.12)}
.door{background:var(--night);padding:clamp(34px,5vw,72px);min-width:0;position:relative;overflow:hidden;transition:background .5s}
.door:hover{background:var(--night-2)}
.door.p::before{content:"";position:absolute;width:520px;height:520px;right:-200px;top:-200px;border-radius:50%;background:radial-gradient(rgba(226,182,115,.2),transparent 65%)}
.door.c::before{content:"";position:absolute;width:520px;height:520px;right:-200px;top:-200px;border-radius:50%;background:radial-gradient(rgba(143,163,131,.16),transparent 65%)}
.door > *{position:relative}
.door h3{font-size:clamp(2rem,3.4vw,2.9rem);font-weight:300;margin-bottom:16px}
.door p{color:var(--cream-2)}
@media (max-width:760px){.doors{grid-template-columns:1fr}}

.quote{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.22;text-align:center;max-width:22em;margin:0 auto}
.quote span{display:block;font-style:normal;font-family:var(--sans);font-size:clamp(.95rem,1.4vw,1.1rem);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-top:26px}
.paper .quote span{color:var(--ink-3)}

/* ---------- page heroes ---------- */
.ph{min-height:78vh;display:flex;align-items:flex-end;overflow:hidden;padding-bottom:clamp(60px,8vw,110px)}
.ph .bg{position:absolute;inset:-3%;background-position:center;background-size:cover;filter:brightness(.95) saturate(1);animation:drift 30s ease-in-out infinite alternate}
.ph .bg::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--lx,25%) var(--ly,60%),rgba(255,186,100,.22),transparent 45%),linear-gradient(90deg,rgba(18,14,11,.62) 0%,rgba(18,14,11,.5) 35%,rgba(18,14,11,.2) 55%,rgba(18,14,11,0) 72%),linear-gradient(180deg,rgba(18,14,11,.28) 0%,rgba(18,14,11,0) 25%,rgba(18,14,11,0) 70%,rgba(18,14,11,.4) 100%);mix-blend-mode:normal}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.06)}}
.ph .wrap{position:relative;width:100%}
.ph .panel{max-width:620px;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.ph h1{font-size:clamp(2.8rem,5.6vw,5rem)}
.ph .panel .lede{color:#fff;font-size:clamp(1.3rem,1.9vw,1.55rem);font-weight:500;line-height:1.55;text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 22px rgba(0,0,0,.7)}
.ph .panel h1{text-shadow:0 2px 6px rgba(0,0,0,.7),0 0 30px rgba(0,0,0,.5)}
.ph .panel h1{margin-bottom:20px}

.ph h1{margin-bottom:24px}
.ph .lede{max-width:34em}
.ph.sagey .bg::after{background:radial-gradient(circle at 70% 40%,rgba(143,163,131,.22),transparent 50%),linear-gradient(90deg,rgba(18,14,11,.62) 0%,rgba(18,14,11,.5) 35%,rgba(18,14,11,.2) 55%,rgba(18,14,11,0) 72%),linear-gradient(180deg,rgba(18,14,11,.28) 0%,rgba(18,14,11,0) 25%,rgba(18,14,11,0) 70%,rgba(18,14,11,.4) 100%)}
.subnav{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.subnav a{font-family:var(--sans);font-size:.8rem;text-decoration:none;padding:.55em 1.1em;border:1px solid rgba(239,228,207,.28);border-radius:999px;color:var(--cream-2);transition:border-color .2s,color .2s}
.subnav a:hover{border-color:var(--amber);color:var(--amber)}

/* ---------- therapy ---------- */
.crossroads{border-top:1px solid rgba(239,228,207,.14)}
details.cr{border-bottom:1px solid rgba(239,228,207,.14)}
details.cr summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:4px 24px;align-items:baseline;padding:26px 0;transition:padding .3s}
details.cr summary::-webkit-details-marker{display:none}
details.cr summary:hover h3{color:var(--amber)}
details.cr h3{font-size:clamp(1.9rem,3.6vw,3rem);font-weight:300;transition:color .3s}
details.cr .t{font-family:var(--hand);font-size:1.7rem;color:var(--cream-3);grid-column:1;line-height:1}
details.cr .pm{grid-row:1/3;grid-column:2;font-family:var(--sans);font-size:1.4rem;color:var(--amber);font-weight:300}
details.cr .pm::after{content:"+"}
details.cr[open] .pm::after{content:"\2212"}
details.cr > p{max-width:var(--text);color:var(--cream-2);padding-bottom:28px;margin:0}

.wont{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,60px);margin-top:60px}
.wont > div{min-width:0;border-top:1px solid rgba(29,24,19,.2);padding-top:22px}
.wont .hand{font-size:1.9rem;color:var(--wine);margin-bottom:8px}
.wont h3{font-size:1.5rem;margin-bottom:8px}
.wont p{color:var(--ink-2);font-size:1rem}
@media (max-width:760px){.wont{grid-template-columns:1fr}}

.place{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.place > *{min-width:0}
.place .arch{aspect-ratio:4/3;border-radius:14px}
@media (max-width:820px){.place{grid-template-columns:1fr}}

.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(29,24,19,.2)}
.facts > div{padding:28px 28px 26px 0;border-bottom:1px solid rgba(29,24,19,.14);min-width:0}
.facts .k{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--wine);margin-bottom:8px}
.facts h3{font-size:1.45rem;margin-bottom:6px}
.facts p{font-size:1rem;color:var(--ink-2);margin:0}
@media (max-width:860px){.facts{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.facts{grid-template-columns:1fr}}

.facts.dark{border-top-color:rgba(239,228,207,.2)}
.facts.dark > div{border-bottom-color:rgba(239,228,207,.12)}
.facts.dark .k{color:var(--amber)}
.facts.dark p{color:#ddd1ba}
.faq{border-top:1px solid rgba(29,24,19,.2)}
details.q{border-bottom:1px solid rgba(29,24,19,.16)}
details.q summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;gap:18px;align-items:baseline;font-family:var(--display);font-size:1.5rem;line-height:1.2}
details.q summary::-webkit-details-marker{display:none}
details.q summary::after{content:"+";margin-left:auto;font-family:var(--sans);font-size:1.1rem;color:var(--wine)}
details.q[open] summary::after{content:"\2212"}
details.q summary span{font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;color:var(--ink-3)}
details.q p{padding:0 0 24px 38px;color:var(--ink-2);margin:0}
@media (max-width:540px){details.q p{padding-left:0}}

/* ---------- people ---------- */
.bio{display:grid;grid-template-columns:340px 1fr;gap:clamp(30px,6vw,90px);padding-block:clamp(50px,7vw,90px);border-top:1px solid rgba(29,24,19,.16)}
.bio:first-child{border-top:0}
.bio > *{min-width:0}
.bio .arch{aspect-ratio:4/5;border-radius:14px;overflow:visible;position:relative;isolation:isolate;margin:14px 14px 14px 0;box-shadow:0 26px 44px -24px rgba(0,0,0,.45)}
.bio .arch::after{content:"";position:absolute;inset:-12px -12px 12px 12px;border:1px solid #b08a4e;border-radius:18px;z-index:-1;pointer-events:none}
.bio .arch img{border-radius:14px;width:100%;height:100%;object-fit:cover;position:relative}
.bio h2{font-size:clamp(2.2rem,3.6vw,3rem);margin-bottom:6px}
.bio .role{font-family:var(--sans);font-size:.84rem;color:var(--ink-3);margin-bottom:24px}
.bio p{color:var(--ink-2)}
.bio .works{font-family:var(--hand);font-size:1.8rem;color:var(--wine);margin:10px 0 18px;line-height:1}
@media (max-width:780px){.bio{grid-template-columns:1fr}.bio .arch{max-width:340px}}

/* ---------- institute ---------- */
.timeline{list-style:none;padding:0;margin:50px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,36px);position:relative}
.timeline::before{content:"";position:absolute;left:0;right:0;top:9px;height:1px;background:linear-gradient(90deg,var(--sage),rgba(143,163,131,.15))}
.timeline li{position:relative;padding-top:42px;min-width:0;display:flex;flex-direction:column}
.timeline li::before{content:"";position:absolute;top:0;left:0;width:19px;height:19px;border-radius:50%;border:1px solid var(--sage);background:var(--night)}
.timeline li.now::before{background:var(--sage);box-shadow:0 0 22px 4px rgba(143,163,131,.45)}
.timeline .when{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:10px}
.timeline h3{font-size:1.7rem;margin-bottom:8px}
.timeline p{font-size:1rem;color:var(--cream-2);flex:1}
@media (max-width:900px){.timeline{grid-template-columns:1fr 1fr;row-gap:44px}}
@media (max-width:520px){.timeline{grid-template-columns:1fr}}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,60px)}
.three > div{min-width:0}
.three .hand{font-size:1.9rem;color:var(--sage-deep);margin-bottom:6px}
.three h3{font-size:1.5rem;margin-bottom:8px}
.three p{font-size:1rem;color:var(--ink-2)}
@media (max-width:760px){.three{grid-template-columns:1fr}}
.lineage{display:grid;grid-template-columns:repeat(3,1fr);gap:44px clamp(24px,4vw,56px);margin-top:50px}
.lineage > div{min-width:0;border-top:1px solid rgba(239,228,207,.18);padding-top:20px}
.lineage .t{font-family:var(--hand);font-size:1.7rem;color:var(--sage);line-height:1;margin-bottom:6px}
.lineage h3{font-style:italic;font-size:1.6rem;margin-bottom:8px}
.lineage p{font-size:1rem;color:var(--cream-2);margin-bottom:6px}
.lineage .n{font-family:var(--sans);font-size:.78rem;color:var(--cream-3)}
@media (max-width:860px){.lineage{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.lineage{grid-template-columns:1fr}}
.fellow-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(29,24,19,.16);margin-top:40px;border:1px solid rgba(29,24,19,.16)}
.fellow-nums div{background:var(--paper);padding:24px 20px;min-width:0}
.fellow-nums b{display:block;font-family:var(--display);font-weight:300;font-size:2.8rem;line-height:1;color:var(--sage-deep)}
.fellow-nums span{font-family:var(--sans);font-size:.8rem;color:var(--ink-2)}
@media (max-width:700px){.fellow-nums{grid-template-columns:1fr 1fr}}

/* ---------- forms & booking ---------- */
.formcard{background:rgba(239,228,207,.04);border:1px solid rgba(239,228,207,.16);border-radius:20px;padding:clamp(24px,4vw,44px)}
.paper .formcard{background:#f7efe0;border-color:rgba(29,24,19,.14)}
.formcard.c{border-top:3px solid var(--sage)}
.field{display:grid;gap:7px;margin-bottom:16px}
.field label{font-family:var(--sans);font-size:.78rem;letter-spacing:.04em;color:var(--cream-2)}
.paper .field label{color:var(--ink-2)}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;padding:.8em .95em;border-radius:12px;border:1px solid rgba(239,228,207,.22);background:rgba(239,228,207,.06);color:var(--cream);width:100%}
.paper .field input,.paper .field select,.paper .field textarea{background:#fff;border-color:rgba(29,24,19,.2);color:var(--ink)}
.field select option{color:#1d1813}
.field textarea{min-height:130px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media (max-width:560px){.row2{grid-template-columns:1fr}}
.done{font-family:var(--sans);font-size:.88rem;background:rgba(226,182,115,.14);border:1px solid rgba(226,182,115,.4);border-radius:12px;padding:14px 16px;margin-top:16px;color:var(--cream)}
.paper .done{color:var(--ink);background:#f3e2bf}

.booker{border:1px solid rgba(239,228,207,.16);border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(226,182,115,.07),rgba(239,228,207,.02))}
.bk-steps{display:flex;font-family:var(--sans);font-size:.78rem;letter-spacing:.06em;border-bottom:1px solid rgba(239,228,207,.12)}
.bk-steps span{flex:1;padding:16px 22px;color:var(--cream-3)}
.bk-steps span.on{color:var(--amber);box-shadow:inset 0 -2px 0 var(--amber)}
.bk-pane{padding:clamp(22px,4vw,44px)}
.bk-pane h3{font-size:2rem;margin-bottom:20px}
.pick{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pick label{position:relative;display:grid;grid-template-columns:64px 1fr;gap:4px 16px;align-items:center;border:1px solid rgba(239,228,207,.18);border-radius:18px;padding:16px;cursor:pointer;min-width:0;transition:border-color .25s,background .25s}
.pick label:hover{border-color:rgba(226,182,115,.5)}
.pick label:has(input:checked){border-color:var(--amber);background:rgba(226,182,115,.1);box-shadow:0 0 30px -10px rgba(226,182,115,.5)}
.pick input{position:absolute;opacity:0;pointer-events:none}
.pick img,.pick .q{grid-row:1/3;width:64px;height:64px;border-radius:50%;object-fit:cover;background:var(--night-3);display:grid;place-items:center;font-family:var(--hand);font-size:2.2rem;color:var(--amber)}
.pick b{font-family:var(--display);font-weight:400;font-size:1.3rem;line-height:1.1}
.pick small{font-family:var(--sans);font-size:.76rem;color:var(--cream-3);line-height:1.4}
@media (max-width:820px){.pick{grid-template-columns:1fr}}
.bk-nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:28px}
.steps-mini{padding-left:1.2em;color:var(--cream-2);margin:14px 0}
.steps-mini li{margin-bottom:.4em}
.notice{font-family:var(--sans);font-size:.84rem;line-height:1.55;color:var(--cream-2);border-left:2px solid var(--amber);padding:4px 0 4px 14px;margin:18px 0 0}
.crisis{border-left:2px solid var(--wine);padding:6px 0 6px 18px;font-size:.98rem;color:var(--ink-2)}
.crisis strong{color:var(--wine)}

/* notices */
.notices h2{font-size:2.2rem;margin:2.2em 0 .5em}
.notices ul{padding-left:1.2em}
.notices li{margin-bottom:.6em;color:var(--ink-2)}
.notices p{color:var(--ink-2)}
.notices a{color:var(--wine)}

/* ---------- footer ---------- */
footer.site{background:#0c0907;padding-block:80px 100px;font-family:var(--sans);font-size:.86rem;color:var(--cream-3)}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
.foot > *{min-width:0}
.foot .mark{font-family:var(--display);font-size:1.7rem;color:var(--cream);line-height:1.15;margin-bottom:14px}
.foot h4{font-family:var(--hand);font-weight:400;font-size:1.7rem;line-height:1;margin:0 0 12px;color:var(--amber)}
.foot h4.c{color:var(--sage)}
.foot a{display:block;text-decoration:none;padding:3px 0;color:var(--cream-2)}
.foot a:hover{color:var(--cream)}
.foot-base{margin-top:54px;padding-top:24px;border-top:1px solid rgba(239,228,207,.1);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot{grid-template-columns:1fr}}


/* ---------- questionnaires ---------- */
.qform fieldset{border:0;padding:0;margin:0 0 34px;min-width:0}
.qform legend{font-family:var(--display);font-size:1.7rem;font-weight:400;padding:0;margin-bottom:6px;color:inherit}
.qform .sub{font-size:.95rem;color:var(--cream-3);margin:0 0 18px}
.paper .qform .sub{color:var(--ink-3)}
.qform .field > label .opt,.qform .qlabel .opt{color:var(--cream-3);font-weight:300}
.qlabel{display:block;font-family:var(--sans);font-size:.78rem;letter-spacing:.04em;color:var(--cream-2);margin:0 0 8px}
.paper .qlabel{color:var(--ink-2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chips label{position:relative;cursor:pointer}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;font-family:var(--sans);font-size:.84rem;padding:.55em 1.05em;border-radius:999px;border:1px solid rgba(239,228,207,.25);color:var(--cream-2);transition:all .2s}
.chips input:checked + span{background:rgba(226,182,115,.16);border-color:var(--amber);color:var(--cream)}
.chips input:focus-visible + span{outline:2px solid var(--amber);outline-offset:2px}
.paper .chips span{border-color:rgba(29,24,19,.25);color:var(--ink-2)}
.paper .chips input:checked + span{background:var(--sage-tint,#e3e7da);border-color:var(--sage-deep);color:var(--ink)}
.cond{border-left:2px solid rgba(226,182,115,.4);padding-left:18px;margin:-6px 0 20px}
.paper .cond{border-color:rgba(86,104,77,.45)}
.consent{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;font-family:var(--sans);font-size:.86rem;line-height:1.5;color:var(--cream-2);margin-bottom:12px;cursor:pointer}
.paper .consent{color:var(--ink-2)}
.consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--amber)}
.qhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.qhead .small{margin:0}
.err{font-family:var(--sans);font-size:.84rem;color:#f0a58e;margin:10px 0 0}
.paper .err{color:var(--wine)}
.secure{display:inline-flex;align-items:center;gap:.5em;font-family:var(--sans);font-size:.76rem;color:var(--cream-3)}
.secure::before{content:"";width:9px;height:11px;border:1.5px solid currentColor;border-radius:2px 2px 1px 1px;box-shadow:inset 0 -4px 0 -2px currentColor}
.field input[type=file]{padding:.6em}
.preview-bar{position:fixed;left:0;right:0;bottom:0;z-index:150;background:#000;color:#efe4cf;font-family:var(--sans);font-size:.78rem;line-height:1.4;padding:9px 16px calc(9px + env(safe-area-inset-bottom,0px));display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center}
.preview-bar mark{background:var(--fill);color:var(--ink);padding:0 .3em;border-radius:3px}
.preview-bar button{font:inherit;background:none;border:1px solid rgba(239,228,207,.45);color:inherit;border-radius:99px;padding:2px 10px;cursor:pointer}


@media (max-width:600px){
  .preview-bar{font-size:.7rem;padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));gap:8px}
  .preview-bar .long{display:none}
  .line{font-size:clamp(2.4rem,11vw,3.4rem)}
  .line.final .cap{display:none!important}
  .line.final .ctas{flex-direction:column;align-items:center;margin-top:28px}
}

.malbook{display:grid;grid-template-columns:300px 1fr;gap:clamp(30px,6vw,80px);align-items:center;margin-top:clamp(60px,8vw,100px);padding-top:clamp(50px,7vw,80px);border-top:1px solid rgba(239,228,207,.12)}
.malbook > *{min-width:0}
@media (max-width:760px){.malbook{grid-template-columns:1fr}.malbook .cover{max-width:240px}}
.cover{aspect-ratio:2/3;background:linear-gradient(160deg,#1f3a4a,#122630 70%);border-radius:3px 8px 8px 3px;padding:26px 22px;display:flex;flex-direction:column;gap:12px;color:#f1e6d0;box-shadow:inset 6px 0 10px -6px rgba(0,0,0,.6),0 30px 50px -24px rgba(0,0,0,.8),0 0 60px -10px rgba(226,182,115,.25);transform:none;position:relative}
.cover::before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:rgba(255,255,255,.08)}
.cv-series{font-family:var(--sans);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#d9b46a}
.cv-title{font-family:var(--display);font-size:2rem;line-height:1.05;margin-top:auto}
.cv-sub{font-family:var(--display);font-style:italic;font-size:.95rem;line-height:1.3;color:#cfd8d6}
.cv-author{font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-top:auto}
.cv-pub{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#9fb0b0}
.mb-text h3{font-size:clamp(2rem,3.4vw,2.8rem);margin-bottom:18px}
.mb-quote{font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.3;margin:0 0 22px;padding-left:22px;border-left:2px solid var(--amber)}
.mb-quote span{display:block;font-family:var(--sans);font-style:normal;font-size:.95rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);margin-top:14px}

/* ---------- the talking scene (what brings people here) ---------- */
.meet.talk{position:relative;height:clamp(380px,29vw,410px);background:none;border:0;overflow:hidden}
.talk .meet-stage{top:73%}
.talk .meet-glow{top:64%}
.tbs{position:absolute;left:calc(50% - 150px);bottom:42%;width:0;height:0;pointer-events:none;--d:154px}
.tb{position:absolute;left:calc(var(--d) / -2);bottom:calc(var(--d) / -2);width:var(--d);height:var(--d);border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 20px;box-sizing:border-box;color:var(--cream);font-family:var(--display);font-style:italic;font-size:clamp(1rem,1.3vw,1.14rem);line-height:1.22;background:radial-gradient(circle at 50% 55%,rgba(20,15,11,.82) 0 52%,rgba(20,15,11,.55) 70%,rgba(239,228,207,.10) 92%,rgba(239,228,207,.22) 100%);border:1px solid rgba(239,228,207,.42);box-shadow:inset 0 0 22px rgba(226,182,115,.14),0 0 26px rgba(226,182,115,.08);opacity:0;will-change:transform,opacity,filter}
.tb::before{content:"";position:absolute;left:20%;top:13%;width:26%;height:14%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,250,240,.45),transparent 70%);transform:rotate(-28deg)}
.tb::after{content:"";position:absolute;right:16%;bottom:12%;width:9%;height:9%;border-radius:50%;background:rgba(243,205,142,.25)}
.tb:nth-child(1){--x1:-10px;--y1:-105px;--x2:70px;--y2:-190px}
.tb:nth-child(2){--x1:-260px;--y1:-55px;--x2:-340px;--y2:-135px}
.tb:nth-child(3){--x1:-150px;--y1:-150px;--x2:-190px;--y2:-215px}
.tb.fly{animation:soap 5.4s cubic-bezier(.3,.6,.4,1) forwards}
.tb:nth-child(2).fly{z-index:2}.tb:nth-child(3).fly{z-index:3}
@keyframes soap{0%{opacity:0;transform:translate(0,0) scale(.18);filter:blur(2px)}14%{opacity:1;filter:blur(0)}26%{transform:translate(var(--x1),var(--y1)) scale(1)}66%{opacity:1;filter:blur(0)}100%{opacity:0;transform:translate(var(--x2),var(--y2)) scale(1.18);filter:blur(7px)}}
@media (max-width:1100px){.tbs{left:calc(50% - 120px);--d:140px}.tb:nth-child(1){--x1:0px;--y1:-105px;--x2:60px;--y2:-185px}.tb:nth-child(2){--x1:-200px;--y1:-50px;--x2:-250px;--y2:-130px}.tb:nth-child(3){--x1:-120px;--y1:-150px;--x2:-140px;--y2:-210px}}
.talk-title{position:absolute;left:calc(50% + 150px);top:6px;width:min(330px,calc(50vw - 190px));opacity:0;transform:translateX(-10px);transition:opacity 1s ease,transform 1s ease}
.talk-title h3{font-family:var(--display);font-weight:400;font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.08;color:var(--cream);margin:0 0 8px}
.talk-title .hand{font-size:clamp(1.45rem,2.4vw,1.95rem);color:#f3cd8e;margin:0}
.talk-title.on{opacity:1;transform:none}
.meet.talk.in .meet-unit.r .m-walker{animation:arriveL 4.4s ease-in-out forwards}
.meet.talk.in .meet-unit.l .m-walker{animation:arriveR 2.6s cubic-bezier(.3,.5,.35,1) forwards}
.talk .meet-unit.speaking .m-sit circle{transform-box:fill-box;transform-origin:center;animation:nod 1.1s ease-in-out infinite}
@keyframes nod{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px) rotate(-4deg)}}
.talk-dots{position:absolute;left:0;right:0;bottom:clamp(14px,2vw,26px);display:flex;justify-content:center;gap:10px;opacity:0;transition:opacity 1s ease}
.talk.joined .talk-dots{opacity:1}
.talk-dots button{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid rgba(239,228,207,.55);background:none;cursor:pointer}
.talk-dots button.on{background:var(--amber);border-color:var(--amber)}
.talk-list{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.talk-list q{display:block}
@media (max-width:760px){.tbs{left:calc(50% - 80px);--d:128px}.tb{font-size:.95rem;padding:0 14px}.tb:nth-child(1){--x1:110px;--y1:-115px;--x2:130px;--y2:-215px}.tb:nth-child(2){--x1:-40px;--y1:-90px;--x2:-45px;--y2:-195px}.tb:nth-child(3){--x1:40px;--y1:-215px;--x2:50px;--y2:-265px}.meet.talk{height:540px}.talk .meet-stage{top:60%}.talk-title{left:16px;right:16px;width:auto;top:calc(100% + 26px);text-align:center;transform:translateY(8px)}.talk-dots{bottom:16px}}
@media (prefers-reduced-motion:reduce){.meet.talk{height:auto;padding:20px 0 40px}.talk .meet-stage,.talk .meet-glow,.talk-dots{display:none}.talk-list{position:static;width:auto;height:auto;clip:auto;white-space:normal;list-style:none;margin:0 auto;padding:0 20px;max-width:900px}.talk-list li{padding:16px 0;border-top:1px solid rgba(239,228,207,.12)}.talk-list .tt{font-family:var(--display);font-size:1.6rem;display:block}.talk-list .ts{font-family:var(--hand);font-size:1.4rem;color:var(--amber-2)}.talk-list q{font-style:italic;color:var(--cream-3);margin-top:4px}}
/* ---------- the meeting band ---------- */
.meet{padding:0;height:clamp(410px,38vw,450px);overflow:hidden;background:linear-gradient(180deg,#0e0b08,#16110d 50%,#0e0b08);border-top:1px solid rgba(239,228,207,.06);border-bottom:1px solid rgba(239,228,207,.06)}
.meet-glow{position:absolute;left:50%;top:44%;width:360px;height:240px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(226,182,115,.22),transparent 65%);opacity:.35;transition:opacity 2.4s ease}
.meet.joined .meet-glow{opacity:1}
.meet-stage{position:absolute;left:0;right:0;top:50%;height:138px;transform:translateY(-56%)}
.meet-unit{position:absolute;top:0;width:126px;height:138px}
.meet-unit.l{left:calc(50% - 130px)}
.meet-unit.r{left:calc(50% + 4px);transform:scaleX(-1)}
.meet svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.meet path,.meet circle{fill:#14100c;stroke:#efe4cf;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round}
.m-chair path{fill:none;stroke:#e6d9bf;stroke-width:1.9}
.m-walker{position:absolute;inset:0;transform:translateX(-60vw)}
.meet.reset .m-walker{animation:none!important;transform:translateX(-60vw)}
.meet.in .meet-unit.r .m-walker{animation:arriveR 2.6s cubic-bezier(.3,.5,.35,1) forwards}
.meet.in .meet-unit.l .m-walker{animation:arriveL 4.4s ease-in-out forwards}
@keyframes arriveR{from{transform:translateX(-60vw)}to{transform:translateX(0)}}
@keyframes arriveL{0%{transform:translateX(-60vw)}48%{transform:translateX(-16vw)}64%{transform:translateX(-16vw)}100%{transform:translateX(0)}}
.m-sit{opacity:0;transition:opacity .6s ease}
.m-stand{transition:opacity .6s ease}
.meet-unit.sat .m-sit{opacity:1}
.meet-unit.sat .m-stand{opacity:0}
.meet-unit.walk .m-stand{animation:bob .8s ease-in-out infinite}
.meet-unit.walk .leg1{transform-origin:31px 58px;animation:swing .8s ease-in-out infinite alternate}
.meet-unit.walk .leg2{transform-origin:38px 58px;animation:swing .8s ease-in-out infinite alternate-reverse}
.meet-unit.walk .arm1{transform-origin:34px 40px;animation:swing .8s ease-in-out infinite alternate-reverse}
.meet-unit.walk .arm2{transform-origin:34px 40px;animation:swing .8s ease-in-out infinite alternate}
.meet-unit.pause .m-stand circle{transform:translateX(4px);transition:transform .8s ease}
@keyframes swing{from{transform:rotate(-13deg)}to{transform:rotate(13deg)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.meet .m-thread{position:absolute;inset:auto;left:calc(50% - 93px);top:0;width:186px;height:138px;overflow:visible}
.m-thread path{stroke:var(--amber);stroke-width:2;fill:none;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 6px rgba(226,182,115,.8))}
.m-thread .m-spark{fill:var(--amber-2);opacity:0;filter:drop-shadow(0 0 6px rgba(255,210,140,.9))}
.meet.joined .m-thread path{stroke-dashoffset:0;transition:stroke-dashoffset 2s ease}
.meet.joined .m-thread .m-spark{opacity:1;transition:opacity .8s ease 1.6s}
.meet .m-ring{position:absolute;inset:auto;left:calc(50% - 150px);top:-74px;width:300px;height:300px;overflow:visible;pointer-events:none}
.m-ring circle{fill:none;stroke:#efe4cf;stroke-width:1.1;stroke-dasharray:1;stroke-dashoffset:1}
.meet.joined .m-ring circle{stroke-dashoffset:0;transition:stroke-dashoffset 2.6s cubic-bezier(.45,.05,.3,1)}
.meet.joined .m-ring .r2{transition-delay:.25s}
.meet .m-thread path{fill:none!important;stroke:var(--amber)!important;stroke-width:1.4!important}
.meet .m-thread .m-spark{stroke:none!important}
.meet-line{position:absolute;left:0;right:0;bottom:clamp(8px,1.4vw,16px);margin:0;text-align:center;font-family:var(--display);font-style:italic;font-size:clamp(1.4rem,2.4vw,2rem);color:var(--amber-2);opacity:0;transition:opacity 1.6s ease 1.8s}
.meet.joined .meet-line{opacity:1}
@media (prefers-reduced-motion:reduce){.meet .m-ring circle{stroke-dashoffset:0}.meet .m-walker{transform:none!important;animation:none!important}.meet .m-stand{opacity:0}.meet .m-sit,.meet .meet-line,.meet .meet-glow{opacity:1}.meet .m-thread path{stroke-dashoffset:0}}
.page{animation:fade .6s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .thread.armed path{stroke-dashoffset:0}
}

/* ---------- CIPSE 3: separate pages ---------- */
.offer .facts h3 a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(160,90,60,.35)}
.offer .facts h3 a:hover{border-color:currentColor}
.topic-links{display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:center;margin-top:14px}
.topic-links a{font-family:var(--sans);font-size:.86rem;text-decoration:none;color:var(--cream);opacity:.82;border:1px solid rgba(239,228,207,.25);border-radius:999px;padding:.45em 1em}
.topic-links a:hover{opacity:1;border-color:var(--amber);color:var(--amber-2)}
.more-topics .topic-links{justify-content:flex-start}
#crossroads .topic-links{padding-bottom:10px}
.talk-title h3 a{color:inherit;text-decoration:none}
.topic .ph h1{max-width:18ch}
.topic .ph .for a{color:inherit;text-decoration:none}
.topic-sub{font-size:clamp(1.7rem,3vw,2.4rem);color:#f3cd8e;margin-top:14px}
.topic-body{align-items:start}
.said{list-style:none;margin:16px 0 0;padding:0}
.offer-begin{margin-top:28px}
.offer-begin a{color:var(--wine)}
.groups-note{margin:18px 0 22px;padding:14px 18px;border-left:2px solid var(--amber);background:rgba(226,182,115,.08)}
.groups-note .when{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--wine);margin-bottom:4px}
.groups-note a{color:var(--wine)}
.float-contact{position:fixed;right:clamp(14px,2.4vw,28px);bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:140;display:inline-flex;align-items:center;gap:.65em;background:var(--wine);color:#fff6e8;font-family:var(--sans);font-weight:600;font-size:1.05rem;letter-spacing:.01em;text-decoration:none;padding:1.05em 1.7em;border-radius:999px;border:1.5px solid rgba(255,236,205,.55);box-shadow:0 12px 34px rgba(0,0,0,.5),0 0 0 4px rgba(140,47,30,.18);transition:transform .2s ease,box-shadow .2s ease}
.float-contact:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.5)}
.float-contact .dot{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px var(--amber)}
.float-contact[hidden]{display:none}
@media (max-width:600px){.float-contact{bottom:calc(50px + env(safe-area-inset-bottom,0px));font-size:.9rem;padding:.85em 1.25em}}
.btn-strong{background:var(--wine);color:#fff6e8;font-size:1.08rem;font-weight:600;padding:1.15em 2.1em;box-shadow:0 10px 26px rgba(140,47,30,.32)}
.btn-strong:hover{background:#a3391f;transform:translateY(-2px)}
.email-line{font-size:1.05rem;margin-top:4px}
.email-line a{color:var(--wine);font-weight:500;text-decoration:underline;text-underline-offset:3px}
.nav .brand{flex-shrink:0}
nav.primary{margin-left:auto}
@media (max-width:1360px){nav.primary{display:none}.menu-btn{display:inline-block}}
/* ---------- walking map (book page) ---------- */
.walkmap{position:relative;margin:30px 0 0;border-radius:16px;overflow:hidden;background:#f2efe9;box-shadow:0 8px 26px rgba(40,28,18,.18),0 0 0 1px rgba(40,28,18,.08);transform-origin:85% 40%;transition:transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .7s ease;cursor:zoom-in;outline:none}
.walkmap:hover,.walkmap.big,.walkmap:focus-visible{transform:scale(1.42);z-index:30;box-shadow:0 30px 80px rgba(40,28,18,.38),0 0 0 1px rgba(40,28,18,.1)}
.wm-svg{display:block;width:100%;height:auto}
.wm-green{fill:#cfe6c1}
.wm-bldg{fill:#e5e1d9;stroke:#d7d2c8;stroke-width:.8}
.wm-foot{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:1 3;stroke-linecap:round;opacity:.9}
.wm-svc{fill:none;stroke:#fbfaf7;stroke-width:4;stroke-linecap:round}
.wm-minor-c{fill:none;stroke:#d9d4ca;stroke-width:10;stroke-linecap:round;stroke-linejoin:round}
.wm-minor{fill:none;stroke:#fff;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:round}
.wm-major-c{fill:none;stroke:#d2ccc0;stroke-width:13;stroke-linecap:round;stroke-linejoin:round}
.wm-major{fill:none;stroke:#fff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round}
.wm-prim-c{fill:none;stroke:#e6bf5a;stroke-width:15;stroke-linecap:round;stroke-linejoin:round}
.wm-prim{fill:none;stroke:#fde293;stroke-width:12;stroke-linecap:round;stroke-linejoin:round}
.wm-lbl{font-family:var(--sans);font-size:12.5px;fill:#6d675e;paint-order:stroke;stroke:#fff;stroke-width:3px;letter-spacing:.02em}
.wm-lbl.big{font-size:15px;fill:#4f4a43;font-weight:500}
.wm-route-shadow{fill:none;stroke:#fff;stroke-width:11;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .4s}
.wm-route{fill:none;stroke:#1a73e8;stroke-width:6.5;stroke-linecap:round;stroke-linejoin:round}
.walkmap.on .wm-route-shadow{opacity:.9}
.wm-walker{fill:#1a73e8;stroke:#fff;stroke-width:3;opacity:0;transition:opacity .3s}
.walkmap.on .wm-walker{opacity:1}
.walkmap.arrived .wm-walker{opacity:0}
.wm-t .disc{fill:#da291c;stroke:#fff;stroke-width:3}
.wm-t .tt{font-family:var(--sans);font-weight:700;font-size:18px;fill:#fff;text-anchor:middle}
.wm-t .ring{fill:none;stroke:#da291c;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:tpulse 2.4s ease-out infinite}
.wm-t .ring.r2{animation-delay:1.2s}
@keyframes tpulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.7);opacity:0}}
.wm-tag rect{fill:#fff;stroke:rgba(0,0,0,.1);filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.wm-tag .t1{font-family:var(--sans);font-weight:600;font-size:14px;fill:#202124}
.wm-tag .t2{font-family:var(--sans);font-size:11.5px;fill:#5f6368}
.wm-pin .pinshape{fill:var(--wine);stroke:#fff;stroke-width:2.5}
.wm-pin .pinhole{fill:#fff}
.walkmap.arrived .wm-pin{animation:pinhop .7s cubic-bezier(.3,1.6,.5,1)}
.wm-pin{transform-box:fill-box}
@keyframes pinhop{0%{translate:0 0}40%{translate:0 -14px}100%{translate:0 0}}
.walkmap figcaption{position:absolute;left:12px;top:12px;right:12px;display:flex;justify-content:space-between;gap:10px;pointer-events:none}
.wm-cap{background:#fff;color:#202124;font-family:var(--sans);font-size:.78rem;padding:.5em .85em;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.wm-cap b{color:#da291c}
.wm-hint{background:rgba(32,33,36,.78);color:#fff;font-family:var(--sans);font-size:.72rem;padding:.5em .85em;border-radius:999px;transition:opacity .4s}
.walkmap.on .wm-hint{opacity:0}
.wm-osm{position:absolute;right:8px;bottom:4px;margin:0;font-family:var(--sans);font-size:.62rem;color:#6d675e;background:rgba(255,255,255,.75);padding:1px 6px;border-radius:4px}
@media (max-width:900px){.walkmap:hover,.walkmap.big,.walkmap:focus-visible{transform:scale(1.03)}}
@media (max-width:600px){.walkmap figcaption{flex-direction:column;align-items:flex-start;gap:5px;left:8px;top:8px}.wm-cap,.wm-hint{font-size:.66rem;white-space:nowrap;line-height:1.3;padding:.4em .7em}}
@media (prefers-reduced-motion:reduce){.wm-t .ring{animation:none;opacity:0}.walkmap{transition:none}}
/* ---------- walking map v2: three routes, parking, click to enlarge ---------- */
.walkmap{cursor:zoom-in}
.walkmap:hover,.walkmap:focus-visible{transform:scale(1.18)}
.wm-route{stroke-dasharray:var(--L);stroke-dashoffset:var(--L)}
.wm-route.r0{stroke-width:10}
.wm-route.r1{stroke-width:6.5}
.wm-route.r2{stroke-width:3.5}
.wm-route-shadow{stroke-width:14}
.wm-walker{stroke:#fff;stroke-width:2.5}
.wm-garage rect{fill:#24418f;stroke:#fff;stroke-width:2}
.wm-garage text{font-family:var(--sans);font-weight:700;font-size:15px;fill:#fff;text-anchor:middle}
.wm-garage .wm-glbl{font-size:13px;font-weight:600;fill:#24418f;text-anchor:start;paint-order:stroke;stroke:#fff;stroke-width:3.5px}
.wm-sp circle{fill:#fff;stroke:#24418f;stroke-width:1.6}
.wm-sp text{font-family:var(--sans);font-weight:700;font-size:9.5px;fill:#24418f;text-anchor:middle}
.pk-inline{display:inline-block;background:#24418f;color:#fff;font-family:var(--sans);font-size:.78em;line-height:1;padding:.18em .38em;border-radius:4px}
.park-tip{font-style:italic}
.wm-dialog{width:min(1240px,96vw);max-width:none;max-height:94vh;padding:0;border:0;border-radius:18px;background:#fbf8f2;color:#202124;box-shadow:0 40px 120px rgba(0,0,0,.55);overflow:auto}
.wm-dialog::backdrop{background:rgba(14,10,8,.72);backdrop-filter:blur(3px)}
.wm-dialog[open]{animation:wmpop .45s cubic-bezier(.2,.8,.2,1)}
@keyframes wmpop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.wmd-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px 12px}
.wmd-k{font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);margin:0 0 4px}
.wmd-head h3{font-family:var(--display);font-weight:400;font-size:clamp(1.4rem,2.6vw,2rem);margin:0;color:#1d1813}
.wmd-actions{display:flex;gap:10px;align-items:center}
.wmd-replay{font-family:var(--sans);font-size:.85rem;border:1px solid rgba(0,0,0,.18);background:#fff;border-radius:999px;padding:.55em 1.1em;cursor:pointer}
.wmd-close{font-size:1.8rem;line-height:1;width:44px;height:44px;border-radius:50%;border:0;background:#1d1813;color:#fff;cursor:pointer}
.wmd-map{position:relative;margin:0 14px;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.wmd-map{background:#f2efe9}
.wmd-map .wm-svg{max-height:calc(94vh - 175px);width:100%}
.wmd-map .wm-lbl{font-size:13px}
.wmd-map .wm-lbl.big{font-size:16px}
.wmd-foot{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;padding:14px 22px 20px}
.wmd-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--sans);font-size:.88rem}
.wmd-legend li{display:flex;align-items:center;gap:8px}
.wmd-legend em{font-style:normal;color:#5f6368}
.wmd-legend .sw{width:26px;height:6px;border-radius:3px;display:inline-block}
.wmd-legend .pk{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:4px;background:#24418f;color:#fff;font-weight:700;font-size:.72rem}
.wmd-legend .pk.sm{width:16px;height:16px;border-radius:50%;background:#fff;color:#24418f;border:1.5px solid #24418f;font-size:.6rem}
.wmd-gm{margin-left:auto;font-family:var(--sans);font-size:.88rem;color:var(--wine);font-weight:600}
.wmd-map.on .wm-walker{opacity:1}
.wmd-map.on .wm-route-shadow{opacity:.9}
.wmd-map.arrived .wm-pin{animation:pinhop .7s cubic-bezier(.3,1.6,.5,1)}
@media (max-width:700px){.wmd-head{padding:14px 14px 8px}.wmd-map{margin:0 8px}.wmd-foot{padding:12px 14px 16px}.wmd-gm{margin-left:0}.wmd-replay{display:none}}
.wm-meter{fill:none;stroke:#1e88e5;stroke-width:5;stroke-dasharray:3 6;stroke-linecap:round;opacity:.85}
.wm-mlbl{font-family:var(--sans);font-size:11.5px;font-style:italic;fill:#1565c0;paint-order:stroke;stroke:#fff;stroke-width:3px}
.wm-water{fill:#a9d3f5;stroke:#8fc3ec;stroke-width:1}
.wm-wlbl{font-family:var(--display);font-style:italic;font-size:26px;fill:#3d7bb3;letter-spacing:.06em;paint-order:stroke;stroke:#a9d3f5;stroke-width:4px}
.wmd-legend .mt,.mt-inline{display:inline-block;width:26px;height:0;border-top:4px dotted #1e88e5;vertical-align:middle}
.park-list{margin:6px 0 14px;padding-left:1.1em}
.park-list li{margin:6px 0;line-height:1.55}
.write-row{align-items:center}
.write-side{padding:clamp(22px,3vw,34px);border-radius:18px;background:rgba(255,255,255,.42);box-shadow:0 0 0 1px rgba(60,40,25,.08)}
.write-side .actions{margin:0 0 14px}
.write-side .crisis{margin-top:22px}
.write-side .small{margin-top:16px}
.finding{padding-top:clamp(20px,3vw,40px);border-top:1px solid rgba(60,40,25,.1)}
.find-h{margin:6px 0 0}
.find-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(30px,5vw,70px);align-items:start;margin-top:clamp(24px,3vw,36px)}
.find-text .dim{margin:0 0 14px}
.find-map .walkmap{margin:0;position:sticky;top:120px}
.find-dir{margin-top:22px}
.dir-btn{color:var(--wine);border:1px solid rgba(140,47,30,.35);background:transparent}
.dir-btn:hover{background:rgba(140,47,30,.06)}
@media (max-width:900px){.find-grid{grid-template-columns:1fr}.find-map .walkmap{position:relative;top:auto}}
.fee-cards-sec{padding-block:clamp(60px,8vw,110px) clamp(40px,6vw,80px)}
.fee-cards{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:clamp(16px,2vw,26px);align-items:stretch}
.fee-card{display:flex;flex-direction:column;background:#fffaf2;border:1px solid rgba(60,40,25,.09);border-radius:22px;padding:clamp(26px,3vw,38px);box-shadow:0 18px 44px rgba(60,40,25,.08);transition:transform .35s ease,box-shadow .35s ease}
.fee-card:hover{transform:translateY(-4px);box-shadow:0 26px 54px rgba(60,40,25,.13)}
.fc-ic{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:rgba(226,182,115,.2);color:var(--wine);margin-bottom:22px}
.fc-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.fc-k{font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);margin:0 0 8px}
.fee-card h3{font-family:var(--display);font-weight:400;font-size:clamp(1.7rem,2.3vw,2.15rem);line-height:1.12;color:#1d1813;margin:0 0 14px}
.fee-card p{color:#4a4037;line-height:1.6;margin:0}
.fc-link{margin-top:auto;padding-top:22px;font-family:var(--sans);font-size:.9rem;font-weight:600;color:var(--wine);text-decoration:none}
.fc-link:hover{text-decoration:underline;text-underline-offset:4px}
.fee-card.feature{background:#1d1813;border-color:#1d1813;box-shadow:0 24px 60px rgba(29,24,19,.35)}
.fee-card.feature .fc-ic{background:rgba(226,182,115,.16);color:var(--amber)}
.fee-card.feature .fc-k{color:var(--amber)}
.fee-card.feature h3{color:var(--cream)}
.fee-card.feature p{color:#d9ccb4}
.fee-card.feature .fc-link{color:var(--amber)}
@media (max-width:900px){.fee-cards{grid-template-columns:1fr}}
#fees .ph{min-height:34vh!important}
#fees .ph h1{font-size:clamp(2.1rem,3.6vw,3.1rem);line-height:1.08}
#fees .ph .lede{font-size:clamp(1.02rem,1.3vw,1.15rem)}
#fees .fee-cards-sec{padding-block:clamp(44px,5vw,70px) clamp(30px,4vw,56px)}
#fees .fee-cards{max-width:1020px;margin:0 auto;gap:18px;grid-template-columns:1fr 1.2fr 1fr}
#fees .fee-card{padding:24px 24px 22px;border-radius:18px}
#fees .fc-ic{width:42px;height:42px;margin-bottom:14px}
#fees .fc-ic svg{width:21px;height:21px}
#fees .fee-card h3{font-size:clamp(1.3rem,1.7vw,1.55rem);margin-bottom:10px}
#fees .fee-card p{font-size:.95rem;line-height:1.55}
#fees .fc-link{padding-top:16px;font-size:.85rem}
@media (max-width:900px){#fees .fee-cards{grid-template-columns:1fr}}
.said li{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.3;padding:14px 0;border-top:1px solid rgba(42,34,26,.14);color:var(--ink,#2a221a)}
.offer .facts{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.offer .facts{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.offer .facts{grid-template-columns:1fr}}

/* ---------- home ending (Base44 layout) ---------- */
.ending{border-top:1px solid rgba(239,228,207,.08)}
.ending-h{max-width:22ch;font-size:clamp(2.3rem,4.4vw,3.8rem)}
.wide-photo{margin:clamp(40px,6vw,64px) 0 0;aspect-ratio:21/9;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.wide-photo img{width:100%;height:100%;object-fit:cover;filter:brightness(.82) saturate(.9)}
@media (max-width:700px){.wide-photo{aspect-ratio:4/3}}
.cards2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,32px);margin-top:clamp(60px,8vw,96px)}
.card2{border:1px solid rgba(239,228,207,.16);border-radius:20px;padding:clamp(28px,4vw,52px);min-width:0;display:flex;flex-direction:column}
.card2.c{border-color:rgba(143,163,131,.38)}
.card2 .k2{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;margin:0 0 16px;color:var(--amber)}
.card2.c .k2{color:var(--sage)}
.card2 h3{font-size:clamp(1.9rem,2.8vw,2.5rem);font-weight:400;margin-bottom:14px}
.card2 p{color:#ddd1ba}
.card2 .actions{margin-top:auto;padding-top:22px}
@media (max-width:760px){.cards2{grid-template-columns:1fr}}

.inline-quote{margin:26px 0 30px;padding:4px 0 4px 22px;border-left:2px solid #7a2615;font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,2.2vw,1.9rem);line-height:1.3;color:#2a221a}
.inline-quote span{display:block;margin-top:10px;font-family:var(--sans);font-style:normal;font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#7a2615}

/* letter ending (Base44 style) */
.letter-end{display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap;margin-top:34px}
.sig2{font-family:var(--hand);font-size:clamp(2rem,3vw,2.5rem);color:var(--amber);margin:0;line-height:1}
.read-more{font-family:var(--sans);font-size:1rem;font-weight:500;background:none;border:0;color:var(--cream);text-decoration:underline;text-underline-offset:6px;text-decoration-color:rgba(239,228,207,.5);cursor:pointer;padding:4px 0}
.read-more:hover{text-decoration-color:var(--amber);color:var(--amber)}
.email-line{margin-top:26px;font-size:.98rem;color:var(--cream-3)}
.email-line a{color:var(--cream-2)}
.portrait-cap{margin:30px 0 0;font-family:var(--sans);font-size:.82rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cream-3)}
.letter-more{animation:fade .6s ease}

/* ---------- bookshelf, Base44 style ---------- */
.shelf-panel{background:#100c09;border:1px solid rgba(239,228,207,.1);border-radius:22px;padding:clamp(22px,4vw,48px);margin-top:44px;box-shadow:0 30px 60px -36px rgba(0,0,0,.9)}
.shelf{border-bottom:8px solid #3a2a1d;padding-top:40px;box-shadow:0 14px 18px -14px rgba(0,0,0,.9)}
.spine{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 62%,#000) 0%,var(--c) 16%,color-mix(in srgb,var(--c) 90%,#fff) 50%,var(--c) 84%,color-mix(in srgb,var(--c) 60%,#000) 100%);border-radius:2px 2px 0 0;justify-content:center;filter:none}
.spine::before{top:16px;height:1px;background:rgba(232,198,140,.32)}
.spine .ttl{font-family:var(--sans);font-size:.6rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(243,234,216,.84);white-space:normal;line-height:1.55;max-height:calc(100% - 36px);overflow:hidden;text-overflow:clip}
.spine .au{display:none}
.spine:hover,.spine[aria-pressed="true"]{transform:translateY(-12px);filter:brightness(1.12)}
.spine[aria-pressed="true"]{box-shadow:inset 0 0 0 1px rgba(232,198,140,.55),inset -6px 0 10px -6px rgba(0,0,0,.4)}
.shelf-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(20px,4vw,64px);align-items:start;max-width:none;margin-top:34px;min-height:120px}
.shelf-card .sc-r{font-size:1.14rem;line-height:1.7;color:var(--cream-2);margin:0}
.shelf-card h3{font-size:clamp(1.8rem,2.6vw,2.2rem)}
@media (max-width:760px){.shelf-card{grid-template-columns:1fr}}
.shelf-close{font-family:var(--hand);font-size:clamp(2rem,3vw,2.6rem);color:var(--amber);margin:46px 0 0;line-height:1.1;-webkit-text-stroke:.5px currentColor}

/* ---------- footer, Base44 style ---------- */
footer.site{padding-block:96px 110px}
.foot{gap:48px 56px}
.foot .mark{font-size:1.9rem;margin-bottom:18px}
.foot > div > p{font-family:var(--serif);font-size:1.02rem;line-height:1.65;color:var(--cream-3)}
.foot h4{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;line-height:1.4;margin:6px 0 22px;color:var(--amber)}
.foot h4.c{color:var(--sage)}
.foot a{font-family:var(--serif);font-size:1.12rem;line-height:1.35;padding:7px 0;color:var(--cream-2);transition:color .2s}
.foot-base{margin-top:72px;padding-top:28px;font-size:.84rem;line-height:1.6}

/* ---------- labels: no dash before them ---------- */
.paper .cap::before{content:none;display:none}

/* ---------- book page: write first, one calm column ---------- */
.write-col{max-width:820px}
.write-col .write-h{font-size:clamp(2.3rem,3.6vw,3.1rem);margin:0 0 22px}
.write-col .write-h em{color:var(--wine)}
.write-col > .dim{font-size:1.12rem;line-height:1.7;margin:0 0 30px}
.write-col .actions{margin:0}
.write-col .email-line{margin-top:20px;font-size:.98rem;color:var(--ink-2)}
.write-col .email-line a{color:var(--wine);font-weight:500}
.crisis-box{margin-top:44px;border:1px solid rgba(60,40,25,.18);border-radius:18px;padding:clamp(20px,3vw,30px) clamp(22px,3vw,34px);background:rgba(255,255,255,.28)}
.crisis-box .cb-k{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--wine);margin:0 0 8px}
.crisis-box p:last-child{margin:0;font-size:1rem;line-height:1.65;color:var(--ink-2)}
.clin-line{margin-top:26px}
.clin-line a{color:var(--wine)}

/* ---------- book page: finding us, with the sketch map ---------- */
.find-col{max-width:820px}
.find-col .find-h{font-size:clamp(2rem,3vw,2.6rem);margin:0 0 24px}
.find-col .find-text .dim{font-size:1.06rem;line-height:1.7}
.find-col .park-list{font-size:1.02rem;color:#2a221a}
.route-box{margin-top:34px;border-radius:18px;background:#16110d;border:1px solid rgba(239,228,207,.12);overflow:hidden;box-shadow:0 26px 50px -34px rgba(20,12,6,.8)}
.route-box svg{display:block;width:100%;height:auto}
.rb-streets path{fill:none;stroke:rgba(239,228,207,.17);stroke-width:6;stroke-linecap:round}
.rb-names text,.rb-sq{font-family:var(--sans);font-size:12px;fill:rgba(239,228,207,.5);letter-spacing:.03em}
.rb-t{fill:none;stroke:rgba(239,228,207,.42);stroke-width:2}
.rb-tl{font-family:var(--sans);font-size:13px;font-weight:600;fill:rgba(239,228,207,.85)}
.rb-route{fill:none;stroke:var(--amber);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 9}
.rb-mask{stroke-dasharray:1;stroke-dashoffset:1}
.route-box.on .rb-mask{stroke-dashoffset:0;transition:stroke-dashoffset 3.2s ease-in-out .2s}
.rb-walker{fill:var(--amber);opacity:0}
.rb-door{fill:var(--amber)}
.rb-pulse{fill:none;stroke:var(--amber);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center}
.route-box.arrived .rb-pulse{animation:rb-pulse 2.2s ease-out infinite}
@keyframes rb-pulse{from{transform:scale(1);opacity:.8}to{transform:scale(3.2);opacity:0}}
.rb-here{font-family:var(--sans);font-size:13px;fill:var(--amber)}
.rb-cap{margin:0;padding:4px 26px 22px;font-size:.95rem;line-height:1.6;color:rgba(239,228,207,.6)}
.find-dir{margin-top:30px;display:flex;flex-wrap:wrap;gap:16px 26px;align-items:center}
.btn-gold{background:var(--amber);color:#1a130b}
.btn-gold:hover{background:var(--amber-2);box-shadow:0 0 34px -8px rgba(226,182,115,.7)}
.full-map{font-family:var(--sans);font-size:.88rem;background:none;border:0;padding:0 0 2px;border-bottom:1px solid currentColor;color:var(--wine);cursor:pointer}
@media (prefers-reduced-motion:reduce){.route-box.on .rb-mask{transition:none}.route-box.arrived .rb-pulse{animation:none}}

/* ---------- meeting figures: no thread between them; a slower, longer nod ---------- */
.meet .m-thread{display:none!important}
.meet.in .meet-unit.l .m-walker,.meet.talk.in .meet-unit.r .m-walker{animation:arriveL2 5.69s ease-in-out forwards}
.meet.talk.in .meet-unit.l .m-walker{animation:arriveR 2.6s cubic-bezier(.3,.5,.35,1) forwards}
@keyframes arriveL2{0%{transform:translateX(-60vw)}37%{transform:translateX(-16vw)}72%{transform:translateX(-16vw)}100%{transform:translateX(0)}}
.meet-unit.pause .m-stand circle{transition:none;transform-box:fill-box;transform-origin:center;animation:slownod 2s ease-in-out forwards}
@keyframes slownod{0%{transform:translate(0,0)}32%{transform:translate(3px,3.5px)}58%{transform:translate(3px,3.5px)}100%{transform:translate(2px,0)}}

/* ---------- meeting figures: walk in together, stop face to face, nod in turn, then sit ---------- */
.meet.in .meet-unit.l .m-walker,.meet.in .meet-unit.r .m-walker,.meet.talk.in .meet-unit.l .m-walker,.meet.talk.in .meet-unit.r .m-walker{animation:meetwalk 7.9s linear forwards}
@keyframes meetwalk{
  0%{transform:translateX(-60vw);animation-timing-function:cubic-bezier(.25,.55,.35,1)}
  43%{transform:translateX(40px)}
  88.6%{transform:translateX(40px);animation-timing-function:ease-in-out}
  100%{transform:translateX(0)}}
.meet-unit.greet .m-stand circle{transition:none;transform-box:fill-box;transform-origin:center;animation:gentlenod 1.9s cubic-bezier(.45,0,.4,1) forwards}
@keyframes gentlenod{0%{transform:translate(0,0)}38%{transform:translate(1.6px,2.6px)}62%{transform:translate(1.6px,2.6px)}100%{transform:translate(0,0)}}

/* ---------- talking scene: slightly bigger bubbles; theme buttons play here ---------- */
.meet.talk{height:clamp(420px,32vw,460px)}
.tbs{--d:170px}
.tb{font-size:clamp(1.08rem,1.42vw,1.26rem);line-height:1.24;padding:0 22px}
.tb:nth-child(1){--x1:-10px;--y1:-115px;--x2:77px;--y2:-209px}
.tb:nth-child(2){--x1:-286px;--y1:-60px;--x2:-374px;--y2:-148px}
.tb:nth-child(3){--x1:-165px;--y1:-165px;--x2:-209px;--y2:-236px}
@media (max-width:1100px){.tbs{--d:154px}.tb:nth-child(1){--x1:0px;--y1:-115px;--x2:66px;--y2:-203px}.tb:nth-child(2){--x1:-220px;--y1:-55px;--x2:-275px;--y2:-143px}.tb:nth-child(3){--x1:-132px;--y1:-165px;--x2:-154px;--y2:-231px}}
@media (max-width:760px){.tbs{--d:140px}.tb{font-size:1.02rem;padding:0 15px}.tb:nth-child(1){--x1:118px;--y1:-122px;--x2:138px;--y2:-228px}.tb:nth-child(2){--x1:-42px;--y1:-96px;--x2:-48px;--y2:-205px}.tb:nth-child(3){--x1:44px;--y1:-232px;--x2:54px;--y2:-284px}.meet.talk{height:590px}}
.meet.settled .m-walker{animation:none!important;transform:none!important}
.talk-title .tt-more{display:inline-block;margin-top:12px;font-family:var(--sans);font-size:.86rem;letter-spacing:.02em;color:var(--amber);text-decoration:none;border-bottom:1px solid rgba(226,182,115,.5);padding-bottom:2px}
.talk-title .tt-more:hover{color:var(--amber-2);border-color:var(--amber-2)}
.topic-links a.on{opacity:1;border-color:var(--amber);color:var(--amber-2);background:rgba(226,182,115,.1)}
@media (max-width:760px){.tb:nth-child(2){--x1:-26px;--y1:-78px;--x2:-30px;--y2:-176px}.tb:nth-child(3){--x1:56px;--y1:-240px;--x2:62px;--y2:-290px}}

/* ---------- bubbles: a touch bigger, and they stay a little longer ---------- */
.tbs{--d:184px}
.tb{font-size:clamp(1.14rem,1.5vw,1.34rem);padding:0 24px}
.tb:nth-child(1){--x1:-10px;--y1:-124px;--x2:82px;--y2:-222px}
.tb:nth-child(2){--x1:-308px;--y1:-64px;--x2:-400px;--y2:-156px}
.tb:nth-child(3){--x1:-178px;--y1:-178px;--x2:-222px;--y2:-250px}
.meet.talk{height:clamp(440px,34vw,480px)}
.tb.fly{animation:soap2 7s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes soap2{0%{opacity:0;transform:translate(0,0) scale(.18);filter:blur(2px)}11%{opacity:1;filter:blur(0)}20%{transform:translate(var(--x1),var(--y1)) scale(1)}74%{opacity:1;filter:blur(0)}100%{opacity:0;transform:translate(var(--x2),var(--y2)) scale(1.18);filter:blur(7px)}}
@media (max-width:1100px){.tbs{--d:166px}.tb:nth-child(1){--x1:0px;--y1:-124px;--x2:70px;--y2:-216px}.tb:nth-child(2){--x1:-236px;--y1:-58px;--x2:-292px;--y2:-150px}.tb:nth-child(3){--x1:-142px;--y1:-176px;--x2:-164px;--y2:-244px}}
@media (max-width:760px){.tbs{--d:146px}.tb{font-size:1.06rem;padding:0 15px}.tb:nth-child(1){--x1:120px;--y1:-126px;--x2:140px;--y2:-232px}.tb:nth-child(2){--x1:-24px;--y1:-80px;--x2:-28px;--y2:-180px}.tb:nth-child(3){--x1:58px;--y1:-246px;--x2:64px;--y2:-296px}.meet.talk{height:600px}}

/* ---------- bubbles: one more touch bigger; a slower float and fade ---------- */
.tbs{--d:196px}
.tb{font-size:clamp(1.2rem,1.58vw,1.42rem);padding:0 26px}
.tb:nth-child(1){--x1:-10px;--y1:-132px;--x2:88px;--y2:-236px}
.tb:nth-child(2){--x1:-328px;--y1:-68px;--x2:-426px;--y2:-166px}
.tb:nth-child(3){--x1:-190px;--y1:-190px;--x2:-236px;--y2:-266px}
.meet.talk{height:clamp(460px,35vw,500px)}
.tb.fly{animation:soap3 8.2s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes soap3{0%{opacity:0;transform:translate(0,0) scale(.18);filter:blur(2px)}9.4%{opacity:1;filter:blur(0)}17%{transform:translate(var(--x1),var(--y1)) scale(1)}66%{opacity:1;filter:blur(0)}100%{opacity:0;transform:translate(var(--x2),var(--y2)) scale(1.18);filter:blur(7px)}}
@media (max-width:1100px){.tbs{--d:176px}.tb:nth-child(1){--x1:0px;--y1:-132px;--x2:74px;--y2:-230px}.tb:nth-child(2){--x1:-250px;--y1:-62px;--x2:-310px;--y2:-160px}.tb:nth-child(3){--x1:-150px;--y1:-186px;--x2:-174px;--y2:-258px}}
@media (max-width:760px){.tbs{--d:152px}.tb{font-size:1.1rem;padding:0 16px}.tb:nth-child(1){--x1:122px;--y1:-130px;--x2:142px;--y2:-238px}.tb:nth-child(2){--x1:-20px;--y1:-82px;--x2:-24px;--y2:-184px}.tb:nth-child(3){--x1:60px;--y1:-252px;--x2:66px;--y2:-302px}.meet.talk{height:620px}}

/* ---------- the dream interlude (home) ---------- */
.dream{position:relative;min-height:clamp(560px,86vh,780px);overflow:hidden;padding:0;display:flex;align-items:flex-end;background:radial-gradient(ellipse at 70% 20%,rgba(122,54,38,.35),transparent 55%),radial-gradient(ellipse at 20% 80%,rgba(90,60,30,.35),transparent 60%),linear-gradient(180deg,#120c07 0%,#1f140c 55%,#2a1a10 100%)}
.dream-sky{position:absolute;inset:0}
.dream .star{position:absolute;border-radius:50%;background:#fff3d6;opacity:.25;animation:twinkle var(--t,4s) ease-in-out infinite;animation-delay:var(--dl,0s)}
.dream .star.bright{box-shadow:0 0 8px 2px rgba(255,236,190,.7)}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
.dream-moon{position:absolute;top:12%;right:14%;width:70px;height:70px;border-radius:50%;box-shadow:inset -14px 6px 0 0 #f1dcae;filter:drop-shadow(0 0 18px rgba(241,220,174,.45));transform:rotate(-20deg)}
.dream-flight{position:absolute;top:26%;left:0;width:100%;height:40%;pointer-events:none}
.sleeper{position:absolute;width:250px;height:auto;left:8%;top:18%;overflow:visible;animation:dream-drift 46s ease-in-out infinite alternate,dream-float 7s ease-in-out infinite}
.sleeper path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2;stroke-dasharray:1;stroke-dashoffset:1}
.sleeper .a{stroke:#f1dcae}
.sleeper .b{stroke:#e8b07a;stroke-width:1.8}
.dream.in .sleeper path{animation:dream-line 1.4s cubic-bezier(.5,.1,.3,1) forwards;animation-delay:var(--d)}
@keyframes dream-line{to{stroke-dashoffset:0}}
@keyframes dream-drift{0%{left:6%}100%{left:58%}}
@keyframes dream-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-16px) rotate(1.5deg)}}
.dream-text{position:relative;z-index:2;padding-bottom:clamp(70px,10vw,110px);text-align:center}
.dream-q{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.35;color:#f6ead0;max-width:30ch;margin:0 auto 18px;text-shadow:0 2px 20px rgba(0,0,0,.6)}
.dream-cite{font-family:var(--sans);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:#c9a265;margin:0}
.dream-cite em{text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:1rem}
@media (max-width:700px){.sleeper{width:170px}.dream-moon{width:46px;height:46px;box-shadow:inset -9px 4px 0 0 #f1dcae}@keyframes dream-drift{0%{left:4%}100%{left:44%}}}
@media (prefers-reduced-motion:reduce){.dream .star,.sleeper{animation:none}.sleeper path{stroke-dashoffset:0;animation:none!important}}
@media (max-width:900px){.dream{min-height:660px}.dream-flight{top:17%;height:20%}.sleeper{top:0}.dream-moon{top:8%;right:10%}}

/* ---------- home: what we offer, bolder and bigger ---------- */
.offer .facts .k{font-size:.8rem;font-weight:700;letter-spacing:.2em}
.offer .facts h3{font-size:clamp(1.65rem,2.2vw,1.85rem);font-weight:600;color:#1d1813;line-height:1.12;margin-bottom:10px}
.offer .facts h3 a{border-bottom:1.5px solid rgba(140,47,30,.45)}
.offer .facts p:not(.k){font-size:1.12rem;line-height:1.6;color:#2a221a}
@media (max-width:1180px) and (min-width:981px){.offer .facts h3{font-size:1.55rem}}

/* ---------- home: a room for everyone ---------- */
.welcome-all{text-align:center;padding-block:clamp(56px,7vw,96px);border-top:1px solid rgba(60,40,25,.12)}
.welcome-all .cap{justify-content:center}
.welcome-all .wa-main{font-family:var(--display);font-weight:500;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.18;color:#1d1813;max-width:24ch;margin:0 auto 18px;text-wrap:balance}
.welcome-all .wa-sub{font-size:1.15rem;line-height:1.6;color:var(--ink-2);margin:0 auto;max-width:40ch}
.offer .facts h3{font-size:clamp(1.8rem,2.4vw,2.1rem)}
.offer .facts p:not(.k){font-size:1.24rem}
.offer .facts .k{font-size:.84rem}
@media (max-width:1180px) and (min-width:981px){.offer .facts h3{font-size:1.7rem}}

/* ---------- therapy page: the tree and the house, and one conclusion for both readers ---------- */
.home-draw{margin:clamp(40px,6vw,70px) auto 0;max-width:520px}
.home-draw svg{display:block;width:100%;height:auto;overflow:visible}
.home-draw path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4;stroke-dasharray:1;stroke-dashoffset:1}
.home-draw .a{stroke:#b4583c}
.home-draw .b{stroke:#c9a265}
.home-draw.in path{animation:dream-line 1.1s cubic-bezier(.5,.1,.3,1) forwards;animation-delay:var(--d)}
.opening-close{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.6rem,2.6vw,2.15rem);line-height:1.35;color:#2a221a;text-align:center;max-width:32ch;margin:clamp(26px,3vw,36px) auto 0;text-wrap:balance}
@media (prefers-reduced-motion:reduce){.home-draw path{stroke-dashoffset:0;animation:none!important}}

/* ---------- cocoa top bar and footer (from the current cipsegroup.com) ---------- */
header.site,header.site.solid{background:rgba(58,49,40,.97);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 1px 0 rgba(239,228,207,.08)}
footer.site{background:#3a3128}
footer.site .foot-base{border-top-color:rgba(239,228,207,.14)}

/* ---------- a room for everyone, in warm taupe ---------- */
.paper.welcome-all{background:#554b40;color:var(--cream);border-top:0}
.paper.welcome-all::before{display:none}
.welcome-all .cap{color:var(--amber)}
.welcome-all .wa-main{color:#f6ecd8}
.welcome-all .wa-sub{color:rgba(239,228,207,.82)}

/* ---------- the tree and the house, drawn by a child with a crayon ---------- */
.home-draw{max-width:580px}
.home-draw path{animation:none!important}
.home-draw .kid path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3.1;stroke-dasharray:1;stroke-dashoffset:1}
.home-draw .kid .a{stroke:#b4583c}
.home-draw .kid .b,.home-draw .kid .g{stroke:#c9a265}
.home-draw .kid .g{stroke-width:2.4}
.home-draw .kid .s{stroke:#c9a265;stroke-width:4.5;opacity:.38}
.home-draw .crayon{pointer-events:none}
.home-draw .cr-body,.home-draw .cr-tip{stroke:rgba(40,25,15,.35);stroke-width:.8}
.home-draw .cr-band{stroke:rgba(255,245,225,.75);stroke-width:1.2;fill:none}
.home-draw.drawn .kid path[data-v="170"]{transform-box:fill-box;transform-origin:50% 100%;animation:kid-smoke 4.5s ease-in-out infinite!important}
@keyframes kid-smoke{0%,100%{transform:skewX(0) translateY(0)}50%{transform:skewX(-7deg) translateY(-2px)}}
.home-draw .crayon path{stroke-dasharray:none;stroke-dashoffset:0}
.home-draw.drawn .kid path:nth-of-type(6),.home-draw.drawn .kid path:nth-of-type(7),.home-draw.drawn .kid path:nth-of-type(8){transform-box:view-box;transform-origin:92px 128px;animation:kid-sway 6.5s ease-in-out infinite!important}
@keyframes kid-sway{0%,100%{transform:rotate(-1.1deg)}50%{transform:rotate(1.1deg)}}
@media (prefers-reduced-motion:reduce){.home-draw.drawn .kid path{animation:none!important}}

/* Mal's book + "as an art" inside the founder letter */
.malbook.in-letter{grid-template-columns:170px 1fr;gap:28px;align-items:start;margin:34px 0 38px;padding:30px 0;border-top:1px solid rgba(239,228,207,.12);border-bottom:1px solid rgba(239,228,207,.12)}
.malbook.in-letter .cover{padding:16px 14px;gap:8px}
.malbook.in-letter .cv-title{font-size:1.3rem}
.malbook.in-letter .cv-sub{font-size:.7rem}
.malbook.in-letter .cv-series,.malbook.in-letter .cv-pub{font-size:.5rem}
.malbook.in-letter .cv-author{font-size:.6rem}
.malbook.in-letter .mb-text h3{font-size:clamp(1.6rem,2.4vw,2rem);margin-bottom:14px}
.malbook.in-letter .mb-quote{font-size:clamp(1.25rem,1.8vw,1.5rem)}
.malbook.in-letter .mb-quote span{font-size:.75rem}
.malbook.in-letter .mb-text p{font-size:1rem;line-height:1.65}
.malbook.in-letter .mb-praise{font-style:italic;color:#cfc3ab}
.malbook.in-letter .mb-hand{font-size:1.6rem!important;color:var(--amber)!important;line-height:1.2!important;margin-top:14px}
@media (max-width:560px){.malbook.in-letter{grid-template-columns:1fr}.malbook.in-letter .cover{max-width:170px}}
.letter-body .letter-art-cap{font-family:var(--display);font-size:clamp(1.7rem,2.6vw,2.2rem);line-height:1.15;margin:40px 0 14px;color:var(--cream)}
.letter-art-cap .cap{display:block;margin-bottom:10px}
.letter-art-cap em{color:var(--amber)}
.malbook.in-letter.after-letter{margin-top:48px;margin-bottom:0;border-bottom:0}
.inperson-facts{margin-top:clamp(50px,7vw,80px)}
.inperson-facts h3{color:var(--cream)}
/* "no worksheets" labels: readable type instead of handwriting */
.wont .hand{font-family:var(--sans);font-size:.85rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;line-height:1.4;color:var(--wine);margin-bottom:12px}
.wont .hand{font-size:1rem}
.wont h3{font-size:clamp(1.7rem,2.3vw,2rem);line-height:1.2;margin-bottom:10px}
.wont p{font-size:1.2rem;line-height:1.6;color:#2a221a}
/* How we work: three items stacked in one column, original cream colors */
.wont{grid-template-columns:1fr;max-width:820px;gap:0}
.wont > div{padding:28px 0 30px}
.wont > div:last-child{border-bottom:1px solid rgba(29,24,19,.2)}
/* How we work: near-black background (brown version: #554b40) */
#approach{background:#120e0b;color:var(--cream)}
#approach::before{display:none}
#approach .cap{color:var(--amber)}
#approach h2{color:#f6ecd8}
#approach h2 em{color:var(--amber)}
#approach .dim,#approach .wont p{color:rgba(239,228,207,.85)}
#approach .wont h3{color:#f6ecd8}
#approach .wont .hand{color:var(--amber)}
#approach .wont > div{border-top-color:rgba(239,228,207,.2)}
#approach .wont > div:last-child{border-bottom-color:rgba(239,228,207,.2)}
/* Bookshelf: older, darker, worn cloth bindings (covers darkened, titles kept readable) */
.spine{--old:color-mix(in srgb,color-mix(in srgb,var(--c) 58%,#3a2a1c) 70%,#000);background:linear-gradient(90deg,color-mix(in srgb,var(--old) 60%,#000) 0%,var(--old) 16%,color-mix(in srgb,var(--old) 92%,#c9b48a) 50%,var(--old) 84%,color-mix(in srgb,var(--old) 55%,#000) 100%);filter:none;box-shadow:inset 0 10px 10px -8px rgba(0,0,0,.55),inset 0 -12px 12px -9px rgba(0,0,0,.6),inset -6px 0 10px -6px rgba(0,0,0,.5)}
.spine::before{background:rgba(200,165,105,.3);box-shadow:0 5px 0 rgba(200,165,105,.18)}
.spine .ttl{color:rgba(236,220,186,.9)}
.spine:hover,.spine[aria-pressed="true"]{filter:brightness(1.25)}
.shelf{border-bottom-color:#2a1d13}

/* ---------- chosen section labels: old typewriter letters, typed one at a time ---------- */
p.cap.tw{font-family:"Special Elite","Courier New",monospace;font-weight:400;letter-spacing:.14em;-webkit-text-stroke:.35px currentColor;font-size:clamp(1.1rem,1.6vw,1.3rem)}
.tw-caret{display:inline-block;width:.6em;height:1.05em;margin-left:.12em;vertical-align:-.15em;background:currentColor;opacity:.75;animation:tw-blink .8s steps(1) infinite}
@keyframes tw-blink{50%{opacity:0}}
.tw-ch{display:inline-block;white-space:pre;animation:tw-strike .16s cubic-bezier(.3,1.8,.5,1) both}
@keyframes tw-strike{0%{transform:translateY(-3px) scale(1.25);opacity:.2;filter:blur(.6px)}55%{transform:translateY(.6px) scale(.98);opacity:1;filter:none}100%{transform:none;opacity:1}}
.tw-w{white-space:nowrap}

/* Mal's book: the hardcover shows; the paperback fades in on hover (tap on phones) */
.cover{overflow:hidden;cursor:pointer}
.cover .cv-hard{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cover .cv-real{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease;pointer-events:none}
.cover:hover .cv-real,.cover:focus-visible .cv-real,.cover.show-real .cv-real{opacity:1}
.cover:focus{outline:none}
.cover:focus-visible{outline:2px solid var(--amber);outline-offset:4px}

/* Mal's line on music: same pull-quote style as the chapter title, cream text, gold rule and name */
.malbook .mb-quote.mb-music{margin:26px 0 0;color:var(--cream)}
.malbook .mb-quote.mb-music span{color:var(--amber)}

/* "Warmly, Keren": readable size, gold, a touch heavier (a later rule was shrinking it) */
.letter-end p.sig2{font-size:clamp(2.6rem,4vw,3.3rem)!important;color:var(--amber)!important;-webkit-text-stroke:.7px currentColor;line-height:1.1!important;letter-spacing:.01em!important}

/* home page only: Jill in black and white, closer in so she matches the other two portraits */
.person .arch img.jill-home{filter:grayscale(1) contrast(1.05)}   /* framed to match her chosen crop (img/jill-home.jpg) */

/* Freud credit under the dream line, in bold */
.dream-cite,.dream-cite em{font-weight:700!important}

/* "If you are looking for therapy / a clinician or student" card labels, a little larger */
p.k2{font-size:15.5px!important;letter-spacing:.2em}

/* footer email in white, on every page */
footer.site .sel{color:#fff!important}

/* "Contact the Institute": filled sage green, like the filled "Book a free consultation" button */
.btn-c,.paper .btn-c{background:var(--sage);border-color:var(--sage);color:#141a10}
.btn-c:hover,.paper .btn-c:hover{background:#a3b896;border-color:#a3b896;box-shadow:0 0 40px -6px rgba(143,163,131,.6)}

/* crisis line in the footer: its own warm-brown panel so it stands out (every page) */
footer.site .foot-base{align-items:center}
footer.site .crisis-line{display:block;flex:1 1 520px;background:#554b40;border-left:3px solid var(--amber);border-radius:12px;padding:16px 22px;font-size:1rem;line-height:1.55;color:#f1e6d0}
footer.site .crisis-line b{color:var(--amber);font-weight:700;margin-right:.25em}
footer.site .crisis-line a{color:#fff;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);white-space:nowrap}
footer.site .crisis-line a:hover{border-bottom-color:#fff}

/* "How it begins" bulbs: unlit until their turn, then glow on one by one */
.path.bulbs li::before{background:rgba(226,182,115,.12);box-shadow:inset 0 0 0 1px rgba(226,182,115,.45),0 0 0 0 rgba(226,182,115,0);transition:background 1.2s ease,box-shadow 1.6s ease}
.path.bulbs li.lit::before{background:var(--amber);box-shadow:inset 0 0 0 1px var(--amber),0 0 22px 4px rgba(226,182,115,.45)}

/* therapy page: the four "on this page" pills over the photo, made easy to read */
.subnav a{background:rgba(18,13,9,.72);border-color:rgba(239,228,207,.6);color:#f6eedf;font-weight:600;text-shadow:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.subnav a:hover{background:rgba(18,13,9,.85);border-color:var(--amber);color:var(--amber)}

/* Ways in: separate boxes (for-clinicians) */
.ways{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px)}
.way{display:flex;flex-direction:column;min-width:0}
.way .when{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:10px}
.way h3{font-size:1.6rem;margin-bottom:8px}
.way p{font-size:1rem;color:var(--cream-2);flex:1}
.way .link{align-self:flex-start;margin-top:18px}
.w-d{display:grid;grid-template-columns:1.1fr 2fr;gap:26px;margin-top:28px;align-items:stretch}
.w-d .ways{margin:0}
.w-d-main{grid-template-columns:1fr;height:100%}
.w-d-main .way{border:1px solid var(--sage);border-radius:18px;padding:40px 34px;background:linear-gradient(160deg,rgba(143,163,131,.18),var(--night-2))}
.w-d-main .way h3{font-size:2.3rem}.w-d-main .way p{font-size:1.15rem}
.w-d-side{grid-template-columns:repeat(3,1fr)}
.w-d-side .way{border:1px solid rgba(239,228,207,.14);border-radius:14px;padding:24px 22px}
.w-d-side .way h3{font-size:1.35rem}
.w-d-cap{font-family:var(--sans);font-size:.95rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin:0 0 14px}
.w-d-side .way{transition:border-color .35s,background .35s,box-shadow .35s}
.w-d-side .way:hover,.w-d-side .way:focus-within{border-color:var(--sage);background:linear-gradient(160deg,rgba(143,163,131,.18),var(--night-2));box-shadow:0 0 0 1px rgba(143,163,131,.25)}
@media (max-width:900px){.ways,.w-d-side{grid-template-columns:1fr 1fr}.w-d{grid-template-columns:1fr}}
@media (max-width:520px){.ways,.w-d-side{grid-template-columns:1fr}}
.w-d-side .way h3,.w-d-side .way p{transition:font-size .35s ease}
.w-d-side .way{transition:border-color .35s,background .35s,box-shadow .35s,padding .35s,border-radius .35s}
.w-d-side .way:hover,.w-d-side .way:focus-within{padding:40px 34px;border-radius:18px}
.w-d-side .way:hover h3,.w-d-side .way:focus-within h3{font-size:2.3rem}
.w-d-side .way:hover p,.w-d-side .way:focus-within p{font-size:1.15rem}

/* Our people: bigger portraits, no gold frame; Jill b&w until hovered */
.bio{grid-template-columns:clamp(290px,27vw,370px) 1fr;align-items:start}
.bio .arch::after{display:none}
.bio .arch{margin:0}
.bio .arch img.jill-bw{filter:grayscale(1) contrast(1.05);transition:filter .6s ease}
#jill:hover .arch img.jill-bw,#jill:focus-within .arch img.jill-bw{filter:none}
@media (max-width:780px){.bio{grid-template-columns:1fr}.bio .arch{max-width:340px}}

/* shelf: arrows to move along a long shelf */
.shelf-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px}
.shelf-nav .hint{margin:0}
.shelf-nav span{display:flex;gap:10px;flex:0 0 auto}
.shelf-nav button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(226,182,115,.55);background:transparent;color:var(--amber);font-size:1.1rem;cursor:pointer;transition:background .25s,opacity .25s}
.shelf-nav button:hover{background:rgba(226,182,115,.14)}
.shelf-nav button:disabled{opacity:.3;cursor:default}

/* readers' shelf */
.lib-add{margin-top:clamp(44px,6vw,70px)}
.lib-shelf{min-height:300px}
.lib-shelf .ghost{flex:0 0 auto;width:var(--w);height:var(--h);border:1px dashed rgba(226,182,115,.35);border-bottom:0;border-radius:2px 2px 0 0;background:rgba(226,182,115,.03)}
.lib-form{margin-top:30px;max-width:760px}
.lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.lib-note{color:var(--cream-3);margin:4px 0 18px}
.lib-done{font-family:var(--hand);font-size:clamp(1.8rem,2.6vw,2.3rem);color:var(--amber);margin:30px 0 0;line-height:1.15}
@media (max-width:640px){.lib-grid{grid-template-columns:1fr}}

/* bigger tap areas on phones */
.talk-dots button{position:relative}
.talk-dots button::after{content:"";position:absolute;inset:-6px}
.consent input[type=checkbox]{width:20px;height:20px;flex:0 0 auto;accent-color:var(--amber)}
/* phones: page-header text sits across the whole photo, so darken it evenly for legibility */
@media (max-width:700px){.ph .bg::after{background:linear-gradient(180deg,rgba(18,14,11,.55) 0%,rgba(18,14,11,.66) 40%,rgba(18,14,11,.8) 100%)!important}}
/* fees page: no red text; warm gold-brown instead */
body[data-page="fees"] .paper .cap,body[data-page="fees"] .paper h2 em,body[data-page="fees"] .paper h1 em{color:#9a6a24}
body[data-page="fees"] .fee-card:not(.feature) .fc-link{color:var(--ink)}
body[data-page="fees"] .fee-card .fc-k{color:var(--ink-3)}
/* our people: role labels in black typewriter type, static */
.bio .cap{font-family:"Special Elite","Courier New",monospace;font-weight:400;color:var(--ink)!important;letter-spacing:.14em;-webkit-text-stroke:1.1px currentColor;font-size:clamp(1.3rem,1.9vw,1.55rem)}
.bio .role{font-family:"Special Elite","Courier New",monospace;font-size:clamp(1rem,1.3vw,1.12rem);letter-spacing:.03em;line-height:1.5;color:var(--ink-2);-webkit-text-stroke:.7px currentColor}
/* our people: "works with…" in black, bold handwriting, written letter by letter */
.bio .works{color:var(--ink);-webkit-text-stroke:1px currentColor;font-size:2.05rem}
.bio .works .wl{opacity:0;transition:opacity .18s ease}
.bio .works .wl.on{opacity:1}

/* our people header: darker photo behind the text, larger label */
.ph-people .bg::after{background:linear-gradient(90deg,rgba(18,14,11,.82) 0%,rgba(18,14,11,.72) 45%,rgba(18,14,11,.45) 75%,rgba(18,14,11,.3) 100%),linear-gradient(180deg,rgba(18,14,11,.3) 0%,rgba(18,14,11,0) 30%,rgba(18,14,11,.45) 100%)!important}
.ph-people .panel{max-width:760px}
.ph-people .cap{font-size:clamp(1.15rem,1.7vw,1.45rem)!important;letter-spacing:.22em;color:var(--amber)!important}

/* our people: half the empty space after the last bio */
.bios-sec{padding-bottom:75px!important}
.bios-sec .bio:last-child{padding-bottom:20px}

/* shelf closing line: handwritten first sentence, plain second */
.shelf-close{font-size:clamp(2.4rem,3.6vw,3.1rem)!important;color:var(--amber-2)!important;-webkit-text-stroke:1px currentColor!important}
.shelf-close-2{font-size:1.25rem;color:var(--cream);margin:12px 0 0}

/* ===== calmer, more contained pages (Oct 23) ===== */
:root{--max:960px}
body{font-size:19px}
h1{font-size:clamp(2.5rem,5.4vw,4.8rem)}
h2{font-size:clamp(2rem,3.6vw,3.15rem)}
section{padding-block:clamp(64px,8.5vw,112px)}
.lede{font-size:1.16rem}
.wrap{padding-inline:clamp(18px,3vw,44px)}
/* home "who you would meet": photos keep a modest size however wide the screen */
.people{grid-template-columns:repeat(3,1fr)}
@media (max-width:760px){.people{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.people{grid-template-columns:1fr}}
/* keep photos and feature boxes at their original proportions on very wide screens */
figure.wide-photo{max-width:1100px;margin-left:auto;margin-right:auto}
.arch:has(img[src*="0e454852c8"]){max-width:520px}
.w-d{max-width:1240px}
.shelf-panel{max-width:1240px;margin-left:auto;margin-right:auto}

/* centered blocks: keep text centered under the reading-width limit */
.welcome-all p,.dream-cite,.dream p{margin-left:auto!important;margin-right:auto!important}

/* "How it begins" on the same warm brown as "A room for everyone" */
.begins-sec{background:#4f4a36;position:relative;z-index:0;isolation:isolate}
.begins-sec .path li p,.begins-sec p{color:#e6dccb}

/* ===== Charcoal look (Oct 23): the light sections become deep charcoal with cream type; no red, no underlined titles ===== */
html body .paper:not(.welcome-all){--paper:#1f1b18;--paper-2:#2a2521;--ink:#f1e8d6;--ink-2:#d3c7b1;--ink-3:#a89a85;--wine:#e6dccb;background:#1f1b18!important;background-image:none!important;color:#d3c7b1}
html body .paper:not(.welcome-all)::before,html body .paper:not(.welcome-all)::after{opacity:0!important}
html body .paper:not(.welcome-all) :is(h1,h2,h3,h4,h1 em,h2 em,h3 em,h3 a){color:#f1e8d6!important}
html body .paper:not(.welcome-all) :is(.cap,p.cap.tw){color:var(--amber)!important}
html body .paper:not(.welcome-all) .cap::before{background:var(--amber)!important}
html body .paper:not(.welcome-all) :is(p,li,dd,blockquote,figcaption,summary,label,small,span:not(.btn *)):not(.cap){color:#d3c7b1}
html body .paper:not(.welcome-all) :is(.k,.for,.when,.fc-k,.role,.by,.opt){color:#bdb09a!important}
html body .paper:not(.welcome-all) h3 a{text-decoration:none!important;border-bottom:0!important;background-image:none!important;box-shadow:none!important}
html body .paper:not(.welcome-all) a:not(.btn):not(h3 a){color:#efe6d4!important;text-decoration-color:rgba(239,230,212,.45)}
html body .paper:not(.welcome-all) *:not(.btn):not(input):not(select):not(textarea){border-color:rgba(239,228,207,.16)}
html body .paper:not(.welcome-all) :is(.fee-card,.formcard){background:#2a2521!important;color:#d3c7b1}
html body .paper:not(.welcome-all) .fee-card.feature{background:#141210!important}
html body .paper:not(.welcome-all) :is(input,select,textarea){background:rgba(239,228,207,.06)!important;border-color:rgba(239,228,207,.22)!important;color:#f1e8d6!important}
html body .paper:not(.welcome-all) .fc-link{color:#efe6d4!important}
html body .paper:not(.welcome-all) .cap *{color:inherit!important}
html body .paper:not(.welcome-all) a:not(.btn):not(h3 a):not(.fc-link){color:var(--amber)!important;font-weight:400!important;text-decoration-color:rgba(226,182,115,.5)!important}
.begins-sec .path.bulbs li:not(.lit)::before{background:rgba(226,182,115,.22);box-shadow:inset 0 0 0 1.5px rgba(226,182,115,.85)}
.path h3{font-weight:600}
html body section.paper.who-sec{background:#f7f1e3!important;background-image:none!important;position:relative;z-index:0;isolation:isolate}
/* dream: an occasional falling star, faint and slow */
.dream-sky .shoot{position:absolute;width:90px;height:1px;background:linear-gradient(90deg,rgba(255,245,225,0),rgba(255,245,225,.55));transform:rotate(-35deg);opacity:0;pointer-events:none}
.dream-sky .shoot::after{content:"";position:absolute;right:0;top:-1px;width:2px;height:2px;border-radius:50%;background:rgba(255,248,232,.9);box-shadow:0 0 4px 1px rgba(255,240,210,.35)}
.dream-sky .shoot.go{animation:shoot 4.2s ease-in-out forwards}
@keyframes shoot{0%{opacity:0;transform:rotate(-35deg) translateX(0)}12%{opacity:.85}80%{opacity:.6}100%{opacity:0;transform:rotate(-35deg) translateX(-700px)}}
@media (prefers-reduced-motion:reduce){.dream-sky .shoot{display:none}}

/* therapy page: the three "no ..." items beside a quiet looping film of a library */
.wont-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(30px,5vw,70px);align-items:start;margin-top:clamp(30px,4vw,50px)}
.wont-row .wont{margin-top:0}
.wont-film{margin:0;position:sticky;top:110px;border-radius:14px;overflow:hidden;aspect-ratio:560/670;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.wont-film video{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:820px){.wont-row{grid-template-columns:1fr}.wont-film{position:relative;top:0;max-width:420px}}
@media (prefers-reduced-motion:reduce){.wont-film video{display:none}.wont-film{background:url(img/library-loop.jpg) center/cover}}
html body section.paper.opening{background:#dfe2d3!important;background-image:none!important}
/* therapy page: "In person, or by video" in library olive; the tree in the bench photo sways gently */
html body section.inperson-sec{background:#dcd7cf!important;background-image:none!important}
.bench-photo{position:relative}
.bench-photo .sway{position:absolute;inset:0;pointer-events:none;background-size:cover;background-position:center;
  -webkit-mask-image:radial-gradient(ellipse 52% 46% at 22% 18%,#000 55%,transparent 100%);mask-image:radial-gradient(ellipse 52% 46% at 22% 18%,#000 55%,transparent 100%);
  transform-origin:12% 48%;animation:treesway 7s ease-in-out infinite alternate}
@keyframes treesway{0%{transform:rotate(-.55deg) skewX(.4deg)}50%{transform:rotate(.25deg) skewX(-.2deg)}100%{transform:rotate(.6deg) skewX(-.45deg)}}
@media (prefers-reduced-motion:reduce){.bench-photo .sway{display:none}}
/* preview colour tool: dark text when a section is given a light colour */
html body section.sc-light.sc-light.sc-light.sc-light :is(h1,h2,h3,h4,h3 a,h1 *,h2 *,h3 *){color:#1d1813!important}
html body section.sc-light.sc-light.sc-light.sc-light :is(h1,h2,h3) em{color:#7a4e24!important}
html body section.sc-light.sc-light.sc-light.sc-light :is(.cap,.cap *){color:#7a4e24!important}
html body section.sc-light.sc-light.sc-light.sc-light :is(p,li,dd,summary,label,small,blockquote,figcaption,span):not(.cap):not(.cap *):not(.btn *){color:#3f362d!important}
html body section.sc-light.sc-light.sc-light.sc-light a:not(.btn):not(h3 a){color:#6e4a26!important}
html body section.sc-light.sc-light.sc-light.sc-light *:not(.btn){border-color:rgba(29,24,19,.16)!important}
html body section.paper#approach{background:#120e0b!important;background-image:none!important}
html body section#crossroads{background:#6b6359!important;background-image:none!important}
/* topic buttons styled like the talking bubbles */
.topic-links a{background:radial-gradient(ellipse at 50% 55%,rgba(20,15,11,.85) 0 55%,rgba(20,15,11,.6) 80%,rgba(239,228,207,.12) 100%);border:1px solid rgba(239,228,207,.42);box-shadow:inset 0 0 14px rgba(226,182,115,.14),0 0 16px rgba(226,182,115,.06);color:#efe4cf;opacity:1}
.topic-links a:hover,.topic-links a.on{background:radial-gradient(ellipse at 50% 55%,rgba(20,15,11,.9) 0 55%,rgba(20,15,11,.7) 80%,rgba(226,182,115,.18) 100%);border-color:var(--amber);color:var(--amber-2)}
/* topic pages: linen header with dark handwriting */
html body section.ph.topic-hero{background:#efe8dc!important;background-image:none!important}
html body section.ph.topic-hero .panel{text-shadow:none!important}
html body section.ph.topic-hero.topic-hero.topic-hero.topic-hero.topic-hero :is(h1,.hand,.for a,.for){color:#2a211a!important;text-shadow:none!important}
html body ul.said li{font-weight:600!important;-webkit-text-stroke:.3px currentColor}
html body section.more-topics{background:#6b6359!important;background-image:none!important}
html body section.paper.offer{background:#f7f1e3!important;background-image:none!important}
html body section.begins-sec.sc-light{background:#dcd7cf!important}
html body section.begins-sec.sc-light .path li p{color:#3f362d!important}
html body section.paper.offer.sc-light h3 a{color:#56684d!important}
/* wide side margins at every screen size (not only on big screens) */
.wrap{padding-inline:clamp(20px,9vw,140px)!important;max-width:calc(var(--max) + 2*clamp(20px,9vw,140px))!important}

/* CIPSE 9: "What we offer" as an intro row + four framed cards (our colours) */
html body section.offer9 .o9-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,5vw,80px);align-items:start;margin-bottom:clamp(40px,5vw,64px)}
html body section.offer9 .o9-lab{font-family:var(--display);font-style:italic;font-size:clamp(1.2rem,1.7vw,1.5rem);color:#8a5a2b!important;margin:0 0 18px;display:flex;align-items:center;gap:14px;letter-spacing:0;text-transform:none}
html body section.offer9 .o9-lab .o9-dash{display:inline-block;width:34px;height:1px;background:#8a5a2b;flex:0 0 auto}
html body section.offer9 .o9-lab{display:block!important}
html body section.offer9 .o9-lab .o9-dash{vertical-align:middle;margin-right:14px}
html body section.offer9 .o9-lab span{color:#8a5a2b!important;font-style:italic}
html body section.offer9 h2{font-weight:400;font-size:clamp(2.3rem,4.2vw,3.6rem);line-height:1.08;margin:0;color:#1d1813!important}
html body section.offer9 h2 em{color:#8a5a2b!important}
html body section.offer9 .o9-lede{font-size:clamp(1.08rem,1.35vw,1.22rem);line-height:1.75;color:#4a4035!important;margin:6px 0 0}
html body section.offer9 .o9-lede a{color:#4a4035!important;text-decoration:underline;text-decoration-color:rgba(138,90,43,.5);text-underline-offset:4px}
html body section.offer9 .o9-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
html body section.offer9 .o9-card{display:block;text-decoration:none;border:1px solid rgba(138,90,43,.45)!important;background:#efe6d3;padding:clamp(22px,2.4vw,34px) clamp(20px,2vw,30px) clamp(30px,3vw,44px);transition:background .3s,border-color .3s}
html body section.offer9 .o9-card:hover{background:#e9dec7;border-color:#8a5a2b!important}
html body section.offer9 .o9-k{display:block;font-family:var(--display);font-style:italic;font-size:1.15rem;color:#8a5a2b;margin-bottom:12px}
html body section.offer9 .o9-card h3{font-weight:400!important;font-size:clamp(1.35rem,1.7vw,1.55rem);line-height:1.2;color:#56684d!important;margin:0 0 12px}
html body section.offer9 .o9-card p{font-size:1.05rem;line-height:1.7;color:#3f362d!important;margin:0}
@media (max-width:980px){html body section.offer9 .o9-intro{grid-template-columns:1fr}html body section.offer9 .o9-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){html body section.offer9 .o9-cards{grid-template-columns:1fr}}

/* CIPSE 9 – offer section, dark brown version */
html body section.paper.offer.offer9.o9-dark{background:#1f1b18!important;color:#efe6d6}
html body section.offer9.o9-dark .o9-lab,html body section.offer9.o9-dark .o9-lab span{color:var(--amber)!important;font-weight:400}
html body section.offer9.o9-dark .o9-lab .o9-dash{background:var(--amber);opacity:.8}
html body section.offer9.o9-dark h2{font-weight:300;color:#f3ebdd!important;font-size:clamp(2.6rem,4.8vw,4rem)}
html body section.offer9.o9-dark h2 em,html body section.offer9.o9-dark h2 em *{color:var(--amber)!important}
html body section.offer9.o9-dark .o9-lede{margin-top:clamp(40px,4vw,56px)}
html body section.offer9.o9-dark .o9-lede p{font-size:clamp(1.08rem,1.35vw,1.22rem);line-height:1.75;color:rgba(239,230,214,.82)!important;margin:0 0 1.1em}
html body section.offer9.o9-dark .o9-card{background:rgba(255,255,255,.025);border-color:rgba(226,182,115,.28)!important}
html body section.offer9.o9-dark .o9-card:hover{background:rgba(226,182,115,.07);border-color:rgba(226,182,115,.6)!important}
html body section.offer9.o9-dark .o9-k{color:var(--amber)}
html body section.offer9.o9-dark .o9-card h3{color:#f3ebdd!important;font-weight:300!important}
html body section.offer9.o9-dark .o9-card p{color:rgba(239,230,214,.72)!important}
@media (min-width:981px){html body section.offer9.o9-dark .o9-intro{grid-template-columns:1.25fr 1fr}html body section.offer9.o9-dark .o9-lab{white-space:nowrap}}
html body section.offer9.o9-dark .o9-begin{border-top:1px solid rgba(239,230,214,.18);margin:clamp(44px,5vw,64px) 0 0;padding-top:clamp(28px,3vw,40px);font-size:clamp(1.1rem,1.4vw,1.25rem);color:rgba(239,230,214,.88)!important}
html body section.offer9.o9-dark .o9-begin a{color:var(--amber)!important;text-decoration:underline;text-decoration-color:rgba(226,182,115,.45);text-underline-offset:5px}
html body section.offer9.o9-dark .o9-begin a:hover{text-decoration-color:var(--amber)}

/* ---------- CIPSE 9 footer: compact, quiet (matches Keren's reference) ---------- */
html body footer.site{background:#1c1714!important;border-top:1px solid rgba(239,228,207,.22);padding-block:52px 30px!important;font-family:var(--serif)}
html body footer.site .foot{grid-template-columns:1.55fr 1fr 1fr 1fr;gap:28px 40px}
html body footer.site .foot .mark{font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,1.45vw,1.32rem);line-height:1.3;color:#f3ebdd;margin:0 0 16px}
html body footer.site .foot > div > p{font-family:var(--serif);font-size:clamp(.92rem,1.05vw,1rem);line-height:1.6;color:rgba(239,230,214,.82);margin:0 0 12px}
html body footer.site .sel{color:rgba(239,230,214,.82)!important}
html body footer.site .foot h4{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1rem,1.15vw,1.1rem);letter-spacing:0;text-transform:none;line-height:1.3;margin:0 0 10px;color:var(--amber)}
html body footer.site .foot h4.c{color:#9aa58a}
html body footer.site .foot a{font-family:var(--serif);font-size:clamp(.92rem,1.05vw,1rem);line-height:1.4;padding:4px 0;color:rgba(239,230,214,.78)}
html body footer.site .foot a:hover{color:#f3ebdd}
html body footer.site .foot-base{margin-top:30px;padding-top:20px;border-top:1px solid rgba(239,228,207,.2);font-size:clamp(.85rem,.95vw,.92rem);color:rgba(239,230,214,.6);align-items:baseline}
html body footer.site .crisis-line{flex:1 1 auto;background:none!important;border:0!important;border-radius:0;padding:0!important;font-size:inherit!important;color:rgba(239,230,214,.6)!important}
html body footer.site .crisis-line b{color:#f3ebdd!important;font-weight:600;margin-right:.2em}
html body footer.site .crisis-line a{color:rgba(239,230,214,.6)!important;font-weight:400!important;border-bottom:1px solid rgba(239,230,214,.35)!important}
html body footer.site .crisis-line a:hover{color:#f3ebdd!important}
@media (max-width:860px){html body footer.site .foot{grid-template-columns:1fr 1fr}}
@media (max-width:480px){html body footer.site .foot{grid-template-columns:1fr}}
/* CIPSE 9: floating "Contact us" as in the reference – square, gold outline, italic */
html body a.float-contact{background:#1c1714!important;border:1px solid var(--amber)!important;border-radius:0!important;box-shadow:none!important;color:var(--amber)!important;font-family:var(--serif)!important;font-style:italic;font-weight:500!important;padding:16px 24px!important}
html body a.float-contact .fc-t{color:var(--amber)!important;font-family:var(--serif)!important;font-style:italic}
html body a.float-contact .dot{background:var(--amber)!important;box-shadow:none!important}
html body a.float-contact:hover{background:#2a231d!important}
/* CIPSE 9: offer section, more compact top to bottom */
html body section.paper.offer.offer9.o9-dark{padding-block:clamp(48px,6vw,80px)!important}
html body section.offer9.o9-dark .o9-intro{margin-bottom:clamp(28px,3.2vw,44px);align-items:end}
html body section.offer9.o9-dark .o9-lab{margin-bottom:10px}
html body section.offer9.o9-dark h2{font-size:clamp(2.3rem,4vw,3.4rem);line-height:1.05}
html body section.offer9.o9-dark .o9-lede{margin-top:0}
html body section.offer9.o9-dark .o9-lede p{line-height:1.6;margin-bottom:.7em}
html body section.offer9.o9-dark .o9-lede p:last-child{margin-bottom:0}
html body section.offer9.o9-dark .o9-cards{gap:clamp(12px,1.6vw,20px)}
html body section.offer9.o9-dark .o9-card{padding:clamp(18px,1.8vw,24px) clamp(18px,1.8vw,24px) clamp(20px,2vw,26px)}
html body section.offer9.o9-dark .o9-k{margin-bottom:6px}
html body section.offer9.o9-dark .o9-card h3{margin-bottom:8px}
html body section.offer9.o9-dark .o9-card p{line-height:1.55}
html body section.offer9.o9-dark .o9-begin{margin-top:clamp(26px,3vw,36px);padding-top:clamp(18px,2vw,24px)}
html body section.offer9.o9-dark > .wrap{max-width:calc(900px + 2*clamp(20px,9vw,140px))!important}
html body section.offer9.o9-dark .o9-intro{align-items:start;grid-template-columns:1.2fr 1fr}
html body section.offer9.o9-dark .o9-lab{white-space:normal}
html body section.offer9.o9-dark .o9-lede{padding-top:6px}
html body section.offer9.o9-dark .o9-card h3{font-size:clamp(1.2rem,1.5vw,1.4rem)}
html body section.offer9.o9-dark .o9-card p{font-size:.98rem}
/* CIPSE 9: Core Values heading section, above "A room for everyone" */
html body section.paper.values9{background:#32271c!important;text-align:center;padding-block:clamp(56px,6.5vw,84px)!important}
html body section.values9 .v9-k{font-family:var(--display);font-size:clamp(.85rem,1vw,.95rem);letter-spacing:.32em;text-transform:uppercase;color:#c9a46a!important;margin:0 0 14px}
html body section.values9 h2{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,4.2vw,3.4rem);line-height:1.1;letter-spacing:.01em;color:#f3ebdd!important;margin:0 0 22px}
html body section.values9 .v9-sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.05rem,1.4vw,1.25rem);color:rgba(239,230,214,.82)!important;margin:0 auto;max-width:44em}
html body section.values9 .v9-rule{display:block;width:56px;height:1px;background:#c9a46a;margin:clamp(30px,3.5vw,44px) auto 0}
/* Core Values as a narrow banner */
html body section.paper.values9{padding-block:clamp(30px,3.4vw,44px)!important}
html body section.values9 .v9-k{margin-bottom:8px;font-size:clamp(.78rem,.9vw,.86rem)}
html body section.values9 h2{font-size:clamp(1.9rem,3vw,2.5rem);margin-bottom:10px}
html body section.values9 .v9-sub{font-size:clamp(.98rem,1.2vw,1.1rem)}
html body section.values9 .v9-rule{margin-top:clamp(16px,2vw,22px)}

/* CIPSE 9: A room for everyone – the welcome text turns over like a box to show the four values */
html body .welcome-all .wa-flip{display:grid;perspective:1600px;max-width:980px;margin:0 auto}
html body .welcome-all .wa-face{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform 1.3s cubic-bezier(.65,0,.25,1),opacity 1.3s;transform-style:preserve-3d}
html body .welcome-all .wa-front{align-self:center;transform:rotateX(0deg)}
html body .welcome-all .wa-back{transform:rotateX(-180deg);display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,24px);text-align:left;pointer-events:none}
html body .welcome-all .wa-flip.turned .wa-front{transform:rotateX(180deg);pointer-events:none}
html body .welcome-all .wa-flip.turned .wa-back{transform:rotateX(0deg);pointer-events:auto}
html body .welcome-all .wa-v{background:#271e18;border:1px solid rgba(201,164,106,.32);padding:clamp(22px,2.6vw,36px) clamp(22px,2.6vw,36px) clamp(24px,2.8vw,38px)}
html body .welcome-all .wa-v h3{font-family:var(--display);font-weight:400;font-size:clamp(1.6rem,2.3vw,2.1rem);line-height:1.15;color:#f3ebdd!important;margin:0 0 12px;letter-spacing:.01em}
html body .welcome-all .wa-v p{font-family:var(--serif);font-size:clamp(.98rem,1.15vw,1.08rem);line-height:1.7;color:rgba(239,230,214,.85)!important;margin:0!important;max-width:none}
@media (max-width:700px){html body .welcome-all .wa-back{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){html body .welcome-all .wa-face{transition:opacity .6s}}
html body .welcome-all .wa-flip{cursor:pointer;outline-offset:8px}

/* CIPSE 9: figure-from-the-logo version (replaces the box flip) */
html body .welcome-all .wa-flip.fig-mode{position:relative;perspective:1200px}
html body .welcome-all .fig-mode .wa-face{transform:none!important;backface-visibility:visible}
html body .welcome-all .fig-mode .wa-front{transition:transform 1.1s cubic-bezier(.6,0,.3,1),opacity 1s ease .1s,filter 1s}
html body .welcome-all .fig-mode.turned .wa-front{transform:rotateY(200deg) rotateZ(-14deg) scale(.55)!important;opacity:0;filter:blur(2px);pointer-events:none}
html body .welcome-all .fig-mode .wa-back{pointer-events:none}
html body .welcome-all .fig-mode.turned .wa-back{pointer-events:auto}
html body .welcome-all .fig-mode .wa-v{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s ease}
html body .welcome-all .fig-mode.turned .wa-v{opacity:1;transform:none}
html body .welcome-all .fig-mode.turned .wa-v:nth-child(1){transition-delay:.55s}
html body .welcome-all .fig-mode.turned .wa-v:nth-child(2){transition-delay:.9s}
html body .welcome-all .fig-mode.turned .wa-v:nth-child(3){transition-delay:1.25s}
html body .welcome-all .fig-mode.turned .wa-v:nth-child(4){transition-delay:1.6s}
html body .welcome-all .fig-mode:not(.turned) .wa-v{transition-delay:0s}
/* the figure */
html body .welcome-all .wa-fig{position:absolute;z-index:3;width:48px;height:auto;top:50%;left:calc(50% - 400px);margin-top:-60px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;opacity:0;transform:translateX(-60vw);pointer-events:none}
html body .welcome-all .wa-fig .leg{transform-box:view-box}
html body .welcome-all .wa-fig .leg-l{transform-origin:16px 57px}
html body .welcome-all .wa-fig .leg-r{transform-origin:24px 57px}
html body .welcome-all .wa-fig .arm{transform-origin:27px 30px;transition:transform .45s ease}
html body .welcome-all .fig-mode.walk .wa-fig{opacity:1;transform:translateX(0);transition:transform 2.6s linear,opacity .6s}
html body .welcome-all .fig-mode.walk:not(.reach) .wa-fig .leg-l{animation:waStep .55s ease-in-out infinite alternate}
html body .welcome-all .fig-mode.walk:not(.reach) .wa-fig .leg-r{animation:waStep .55s ease-in-out infinite alternate-reverse}
html body .welcome-all .fig-mode.walk:not(.reach) .wa-fig{animation:waBob .55s ease-in-out infinite alternate}
html body .welcome-all .fig-mode.reach .wa-fig .arm{transform:rotate(-70deg)}
html body .welcome-all .fig-mode.gone .wa-fig{opacity:0;transition:opacity 1s}
@keyframes waStep{from{transform:rotate(-16deg)}to{transform:rotate(16deg)}}
@keyframes waBob{from{margin-top:-60px}to{margin-top:-63px}}
@media (max-width:759px){html body .welcome-all .wa-fig{display:none}}
html body .welcome-all .wa-fig{left:calc(50% - 300px)}

/* CIPSE 9: two figures and the lamp (replaces the walking figure) */
html body .welcome-all .wa-stage{display:grid;grid-template-columns:clamp(80px,9vw,120px) minmax(0,1fr) clamp(130px,14vw,190px);gap:clamp(14px,2.4vw,36px);align-items:end;max-width:1180px;margin:0 auto;position:relative}
html body .welcome-all .wa-stage .wa-flip{grid-column:2;cursor:default;max-width:none;width:100%;align-self:center}
html body .welcome-all .wa-person{display:block;width:100%;height:auto;fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity 1.4s ease}
html body .welcome-all .wa-left{grid-column:1;grid-row:1}
html body .welcome-all .wa-right{grid-column:3;grid-row:1;overflow:visible}
html body .welcome-all .wa-stage.seated .wa-person{opacity:1}
html body .welcome-all .wa-right .fig-r{opacity:1}
html body .welcome-all .wa-person .fg-chair{stroke:rgba(255,255,255,.75)}
/* the right figure's arm */
html body .welcome-all .wa-right .arm{transform-box:fill-box;transform-origin:0 0;transition:transform .6s cubic-bezier(.5,0,.3,1)}
html body .welcome-all .wa-stage.reach .wa-right .arm{transform:rotate(-125deg)}
html body .welcome-all .wa-stage.reach.tug .wa-right .arm{transform:rotate(-125deg) translate(0,-4px)}
/* the lamp, in gold line */
html body .welcome-all .lamp-g{cursor:pointer;outline:none}
html body .welcome-all .lamp-g .cord{stroke:#e2c483;stroke-width:1.3}
html body .welcome-all .lamp-g .shade,html body .welcome-all .lamp-g .wire{stroke:#e2c483;stroke-width:9;fill:none}
html body .welcome-all .lamp-g .rays{stroke:rgba(255,255,255,.55);stroke-width:5;fill:none;opacity:0;transition:opacity 1s ease}
html body .welcome-all .lamp-g .glow{fill:rgba(240,201,138,.22);stroke:none;opacity:0;transition:opacity .8s ease}
html body .welcome-all .lamp-g .wire{transition:transform .25s ease;transform-box:fill-box;transform-origin:50% 0}
html body .welcome-all .wa-stage.tug .lamp-g .wire{transform:translateY(14px)}
html body .welcome-all .wa-stage.lamp-on .lamp-g .glow{opacity:1}
html body .welcome-all .wa-stage.lamp-on .lamp-g .rays{opacity:1}
html body .welcome-all .wa-stage.lamp-on .lamp-g .shade{fill:rgba(240,201,138,.12)}
html body .welcome-all .lamp-g:focus-visible .shade{stroke:#fff}
/* warm light over the room once the lamp is on */
html body section.welcome-all{position:relative}
html body section.welcome-all::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 70% at 62% 55%,rgba(240,190,120,.16),rgba(240,190,120,0) 70%);opacity:0;transition:opacity 1.6s ease;display:block!important}
html body section.welcome-all:has(.wa-stage.lamp-on)::after{opacity:1}
html body section.welcome-all > .wrap{position:relative;z-index:1}
/* the writing gives way softly in the lamplight (no twist) */
html body .welcome-all .lamp-mode.turned .wa-front{transform:none!important;filter:blur(3px);opacity:0}
html body .welcome-all .lamp-mode .wa-v{transform:translateY(10px)}
html body .welcome-all .lamp-mode.turned .wa-v:nth-child(1){transition-delay:.35s}
html body .welcome-all .lamp-mode.turned .wa-v:nth-child(2){transition-delay:.6s}
html body .welcome-all .lamp-mode.turned .wa-v:nth-child(3){transition-delay:.85s}
html body .welcome-all .lamp-mode.turned .wa-v:nth-child(4){transition-delay:1.1s}
@media (max-width:899px){
  html body .welcome-all .wa-stage{grid-template-columns:1fr}
  html body .welcome-all .wa-stage .wa-flip{grid-column:1}
  html body .welcome-all .wa-person{display:none}
}
html body .welcome-all .wa-stage.reach .wa-right .arm{transform:rotate(-130deg)}
html body .welcome-all .wa-stage.reach.tug .wa-right .arm{transform:rotate(-130deg) translate(0,-4px)}
html body .welcome-all .lamp-g .glow-soft{fill:url(#none);fill:rgba(240,201,138,.10);stroke:none;opacity:0;transition:opacity 1.2s ease}
html body .welcome-all .wa-stage.lamp-on .lamp-g .glow-soft{opacity:1}
html body section.welcome-all::after{background:radial-gradient(circle at 80% 42%,rgba(240,190,120,.18),rgba(240,190,120,0) 45%)!important}
/* How it begins: narrower and more compact */
html body section.begins-sec > .wrap{max-width:calc(900px + 2*clamp(20px,9vw,140px))!important}
html body section.begins-sec{padding-block:clamp(56px,6.5vw,88px)!important}
html body section.begins-sec .path{margin-top:clamp(28px,3.4vw,44px)!important}
html body .welcome-all .wa-stage.reach .wa-right .arm{transform:rotate(-172deg)}
html body .welcome-all .wa-stage.reach.tug .wa-right .arm{transform:rotate(-172deg) translate(0,-4px)}

/* lamp pull string: the right figure reaches up, pulls it, the lamp comes on */
html body .welcome-all .wa-right .pull .string{stroke:#e2c483;stroke-width:1.1;transform-box:fill-box;transform-origin:50% 0;transition:transform .25s ease}
html body .welcome-all .wa-right .pull .bead{fill:#e2c483;stroke:none;transition:transform .25s ease}
html body .welcome-all .wa-stage.tug .wa-right .pull .string{transform:scaleY(1.12)}
html body .welcome-all .wa-stage.tug .wa-right .pull .bead{transform:translateY(16px)}
html body .welcome-all .wa-stage.tug .lamp-g .wire{transform:none}
html body .welcome-all .wa-stage.reach .wa-right .arm{transform:rotate(-155deg)}
html body .welcome-all .wa-stage.reach.tug .wa-right .arm{transform:rotate(-155deg) scale(.7)}
html body .welcome-all .wa-right .arm{transition:transform .5s cubic-bezier(.5,0,.3,1)}
html body .welcome-all .wa-stage.tug .wa-right .arm{transition:transform .25s ease}
/* keep the figures on narrower screens (down to phone width) */
@media (max-width:899px){
  html body .welcome-all .wa-stage{grid-template-columns:clamp(56px,9vw,90px) minmax(0,1fr) clamp(92px,15vw,140px);gap:clamp(10px,2vw,20px)}
  html body .welcome-all .wa-stage .wa-flip{grid-column:2}
  html body .welcome-all .wa-person{display:block}
  html body .welcome-all .wa-v{padding:18px 18px 20px}
  html body .welcome-all .wa-v h3{font-size:1.35rem}
  html body .welcome-all .wa-v p{font-size:.92rem;line-height:1.6}
}
@media (max-width:619px){
  html body .welcome-all .wa-stage{grid-template-columns:1fr}
  html body .welcome-all .wa-stage .wa-flip{grid-column:1}
  html body .welcome-all .wa-person{display:none}
}
html body .welcome-all .wa-stage.reach .wa-right .arm{transform:rotate(-132deg)}
html body .welcome-all .wa-stage.reach.tug .wa-right .arm{transform:rotate(-124deg) scale(.78)}
html body .welcome-all .wa-stage.tug .wa-right .pull .string{transform:scaleY(1.1)}
html body .welcome-all .wa-stage.tug .wa-right .pull .bead{transform:translateY(14px)}
html body .welcome-all .wa-stage.tug .wa-right .pull .string{transform:scaleY(4.5)}
html body .welcome-all .wa-right .pull .string{stroke-width:1.6}
/* A room for everyone: narrower and more compact */
html body section.paper.welcome-all{padding-block:clamp(44px,5vw,70px)!important}
html body .welcome-all .wa-stage{max-width:960px}
html body .welcome-all .wa-stage .cap,html body section.welcome-all .cap{margin-bottom:clamp(14px,1.8vw,22px)!important}
html body .welcome-all .wa-back{gap:clamp(10px,1.4vw,16px)}
html body .welcome-all .wa-v{padding:clamp(16px,1.8vw,24px) clamp(18px,2vw,26px)}
html body .welcome-all .wa-v h3{font-size:clamp(1.3rem,1.8vw,1.6rem);margin-bottom:8px}
html body .welcome-all .wa-v p{font-size:clamp(.9rem,1vw,1rem);line-height:1.6}
html body .welcome-all .wa-front .wa-main{font-size:clamp(1.7rem,2.8vw,2.4rem)}
html body .welcome-all .lamp-g .shade,html body .welcome-all .lamp-g .wire{stroke:#e2c483!important}
/* CIPSE 9: quiet name band just above the footer */
html body section.sig-band{background:#0b0908;border-top:1px solid rgba(201,164,106,.4);padding-block:clamp(40px,4.5vw,56px)!important;text-align:center}
html body section.sig-band p{margin:0 auto}
html body section.sig-band .sb-name{font-family:var(--display);font-weight:400;font-size:clamp(1.3rem,1.7vw,1.55rem);letter-spacing:.14em;color:#f3ebdd}
html body section.sig-band .sb-line{font-family:var(--serif);font-size:clamp(.98rem,1.2vw,1.1rem);color:rgba(239,230,214,.72);margin-top:18px}
html body section.sig-band .sb-copy{font-family:var(--serif);font-size:clamp(.88rem,1vw,.98rem);color:rgba(239,230,214,.48);margin-top:clamp(22px,2.6vw,32px)}
/* A room for everyone: tighter still (smaller figures and lamp set the height) */
html body .welcome-all .wa-stage{max-width:860px;grid-template-columns:clamp(54px,5.6vw,74px) minmax(0,1fr) clamp(92px,9.4vw,124px)}
html body section.paper.welcome-all{padding-block:clamp(34px,4vw,54px)!important}
html body .welcome-all .wa-front .wa-main{font-size:clamp(1.6rem,2.5vw,2.15rem);margin-bottom:12px}
html body .welcome-all .wa-stage{max-width:740px}
html body .welcome-all .wa-v{padding:16px 18px 18px}
html body .welcome-all .wa-v h3{font-size:clamp(1.2rem,1.6vw,1.4rem)}
html body .welcome-all .wa-v p{font-size:clamp(.86rem,.95vw,.94rem);line-height:1.55}
/* A room for everyone: no empty space around the welcome writing before the lamp comes on */
html body .welcome-all .wa-flip.lamp-mode{position:relative}
html body .welcome-all .lamp-mode:not(.turned) .wa-back{position:absolute;inset:0 0 auto 0;visibility:hidden}
html body .welcome-all .lamp-mode.turned .wa-front{position:absolute;inset:0;visibility:hidden;transition:opacity .8s,filter .8s,visibility 0s .8s}
html body section.paper.welcome-all{padding-block:clamp(26px,3vw,40px)!important}
html body section.welcome-all .cap{margin-bottom:clamp(8px,1.2vw,14px)!important}
html body .welcome-all .wa-stage{align-items:end}
/* the lamp waits to be pulled */
html body .welcome-all .wa-right{cursor:pointer;outline:none}
html body .welcome-all .wa-right:focus-visible{outline:1px dashed rgba(226,196,131,.6);outline-offset:6px}
html body .welcome-all .wa-right .pull .bead{animation:beadGlow 2.4s ease-in-out infinite}
html body .welcome-all .wa-stage.lamp-on .wa-right .pull .bead{animation:none}
@keyframes beadGlow{0%,100%{filter:drop-shadow(0 0 0 rgba(240,201,138,0))}50%{filter:drop-shadow(0 0 5px rgba(240,201,138,.95))}}
html body .welcome-all .wa-right:hover .lamp-g .shade{fill:rgba(240,201,138,.08)}
html body .welcome-all .wa-flip{cursor:default}
/* CIPSE 9 offer: Bion quote under the lede, and everything below set an inch lower */
html body section.offer9.o9-dark .o9-bion{margin:22px 0 0;padding:0 0 0 18px;border-left:1px solid rgba(226,182,115,.55)}
html body section.offer9.o9-dark .o9-bion p{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,1.5vw,1.35rem);line-height:1.45;color:#f3ebdd!important;margin:0 0 6px!important}
html body section.offer9.o9-dark .o9-bion cite{display:block;font-family:var(--serif);font-style:normal;font-size:.9rem;letter-spacing:.06em;color:var(--amber)!important}
html body section.paper.offer.offer9.o9-dark{padding-top:calc(clamp(48px,6vw,80px) + 96px)!important}
/* centre the welcome under its heading: equal side columns */
html body .welcome-all .wa-stage{grid-template-columns:clamp(92px,9.4vw,124px) minmax(0,1fr) clamp(92px,9.4vw,124px)}
html body .welcome-all .wa-left{width:60%;justify-self:start}
@media (max-width:899px){html body .welcome-all .wa-stage{grid-template-columns:clamp(92px,15vw,140px) minmax(0,1fr) clamp(92px,15vw,140px)}}
@media (max-width:619px){html body .welcome-all .wa-stage{grid-template-columns:1fr}}
html body section.offer9.o9-dark .o9-k{font-size:1.38rem}
html body .welcome-all .wa-v h3{font-weight:700!important}
html body section.paper.offer.offer9.o9-dark{padding-top:clamp(40px,4.6vw,60px)!important}
html body section.offer9 .o9-more{font-style:italic;color:var(--amber)!important}
/* CIPSE 9: lighter background for "A quiet room on a quiet street" */
html body section.ending{background:#4a4036!important;background-image:none!important}
/* name band: much slimmer */
html body section.sig-band{padding-block:14px 12px!important}
html body section.sig-band .sb-name{font-size:1.05rem;letter-spacing:.16em;line-height:1.2}
html body section.sig-band .sb-line{margin-top:4px;font-size:.9rem;line-height:1.4}
html body section.sig-band .sb-copy{margin-top:4px;font-size:.8rem;line-height:1.4}
/* CIPSE 9: fill the two ending boxes – deep espresso for therapy, deep olive for clinicians */
html body section.ending .card2.p{background:#2a211b!important;border-color:rgba(226,182,115,.35)!important}
html body section.ending .card2.c{background:#33362a!important;border-color:rgba(160,175,140,.35)!important}
html body section.sig-band{padding-block:24px 22px!important}
html body section.sig-band .sb-line{margin-top:8px}
html body section.sig-band .sb-copy{margin-top:8px}
html body section.ending .lede{font-family:var(--hand)!important;font-size:clamp(1.8rem,2.6vw,2.3rem)!important;line-height:1.3;color:#f1e6d0!important}
/* CIPSE 9: Who you would meet – "Institute community" heading and framed portraits, in our existing colours */
html body section.who9 .w9-head{text-align:center;margin:0 auto clamp(36px,4vw,56px)}
html body section.who9 .w9-k{font-family:var(--display);font-size:clamp(.85rem,1vw,.95rem);letter-spacing:.32em;text-transform:uppercase;color:#8a5a2b!important;margin:0 0 14px}
html body section.who9 .w9-h{font-family:var(--display);font-weight:400;font-size:clamp(2.2rem,4vw,3.3rem);line-height:1.1;letter-spacing:.01em;color:#1d1813!important;margin:0}
html body section.who9 .w9-rule{display:block;width:64px;height:1px;background:#a8762f;margin:clamp(22px,2.6vw,32px) auto 0}
/* the frame: a warm linen mat with a thin brown line, the photo set inside */
html body section.who9 .person .arch{background:#ece3d2;border:1px solid rgba(138,90,43,.35);padding:clamp(14px,1.8vw,22px);border-radius:0!important;aspect-ratio:auto;overflow:visible}
html body section.who9 .person .arch img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:0!important}
html body section.who9 .person:hover .arch{border-color:rgba(138,90,43,.75)}
html body section.who9 .w9-h{font-weight:700!important}
html body section.who9 .w9-k{font-weight:700!important}
html body section.values9 .v9-k{font-weight:700!important}
/* Institute community: its own banner, same as Core Values */
html body section.values9.inst9 h2{font-weight:700!important;margin-bottom:0}
html body section.who9{padding-top:clamp(48px,5.5vw,76px)!important}
/* both banners the same height (the taller of the two) */
html body section.paper.values9{min-height:210px;display:flex;align-items:center}
html body section.paper.values9 > .wrap{width:100%}
/* CIPSE 9: cream banner, same shape as the other two */
html body section.paper.values9.cream9{background:#f6f1e6!important}
html body section.values9.cream9 .v9-k{color:#8a5a2b!important}
html body section.values9.cream9 h2{color:#1d1813!important;font-weight:700!important}
html body section.values9.cream9 .v9-sub{color:#4a4035!important}
html body section.values9.cream9 .v9-rule{background:#a8762f}
html body section.values9.cream9 .v9-k{color:#6e4520!important;-webkit-text-stroke:.45px currentColor;font-size:clamp(.92rem,1.1vw,1.02rem)}
html body section.paper.values9.cream9{padding-block:28px!important}
html body section.ending .card2 .btn{font-weight:700!important}
/* CIPSE 9: top bar – near-black, CIPSE in serif with Cambridge in gold beneath, links in quiet serif */
html body header.site,html body header.site.solid{background:#1c1816!important;box-shadow:0 1px 0 rgba(201,164,106,.18)!important}
html body header.site .brand span.b9{display:flex;flex-direction:column;line-height:1;letter-spacing:0;text-transform:none;font-family:var(--display)}
html body header.site .brand span.b9 b{font-weight:500;font-size:clamp(1.55rem,2.2vw,2rem);letter-spacing:.14em;color:#f3ebdd}
html body header.site .brand span.b9 small{margin-top:6px;font-size:clamp(.78rem,1vw,.92rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#c9a46a}
html body header.site .brand img{width:58px;height:58px}
html body header.site nav.primary a,html body header.site nav.primary a.pat,html body header.site nav.primary a.clin{font-family:var(--display)!important;font-weight:500!important;font-size:clamp(1.05rem,1.35vw,1.25rem)!important;letter-spacing:.06em!important;color:#efe6d6!important;text-shadow:none!important}
html body header.site nav.primary a:hover{color:#c9a46a!important}
@media (max-width:600px){html body header.site .brand span.b9 b{font-size:1.3rem}html body header.site .brand span.b9 small{font-size:.68rem}html body header.site .brand img{width:46px;height:46px}}
html body header.site .nav .btn{white-space:nowrap}
/* keep the menu links showing down to tablet width */
@media (min-width:1000px){html body header.site nav.primary{display:flex!important;gap:clamp(14px,1.6vw,28px)}html body header.site .menu-btn{display:none!important}}
@media (min-width:1000px) and (max-width:1360px){html body header.site nav.primary a,html body header.site nav.primary a.pat,html body header.site nav.primary a.clin{font-size:1rem!important;letter-spacing:.03em!important}html body header.site .brand img{width:46px;height:46px}html body header.site .brand span.b9 b{font-size:1.35rem}html body header.site .nav .btn{font-size:.85rem;padding:.7em 1.1em}}
/* narrower screens: the menu links stay on top, in a second row under the name */
@media (max-width:999px){
  html body header.site .nav{flex-wrap:wrap;row-gap:0}
  html body header.site nav.primary{display:flex!important;order:3;flex:0 0 100%;justify-content:center;flex-wrap:wrap;gap:4px clamp(12px,3vw,26px);margin:0;padding:2px 0 10px;border-top:1px solid rgba(201,164,106,.14)}
  html body header.site nav.primary a,html body header.site nav.primary a.pat,html body header.site nav.primary a.clin{font-size:clamp(.88rem,2.2vw,1.02rem)!important;letter-spacing:.03em!important;padding:6px 0 4px!important}
  html body header.site .menu-btn{display:none!important}
}
@media (max-width:600px){html body header.site .nav .btn#cta-p{display:inline-flex!important;font-size:.78rem;padding:.6em .9em}}
@media (max-width:999px){
  :root{--nav-h:118px}
  html body header.site .nav{height:auto;padding-top:8px}
  html body header.site .brand{min-height:64px}
}
@media (max-width:600px){
  :root{--nav-h:140px}
  html body header.site .nav .btn#cta-p{display:none!important}
  html body header.site nav.primary{gap:2px 16px}
}
/* CIPSE 9: For clinicians – the picture sits beside the writing in its own frame */
html body section.ph.ph9{background:#1c1816!important;min-height:0!important;padding-top:calc(var(--nav-h) + clamp(40px,5vw,72px))!important;padding-bottom:clamp(56px,6vw,90px)!important;display:block}
html body section.ph.ph9 .bg{display:none}
html body section.ph.ph9 .ph9-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
html body section.ph.ph9 .panel{background:none!important;box-shadow:none!important;padding:0!important;max-width:none!important;margin:0!important;backdrop-filter:none!important}
html body section.ph.ph9 .lede{text-shadow:none!important;color:rgba(239,230,214,.86)!important;font-size:clamp(1.05rem,1.3vw,1.2rem)!important;line-height:1.75}
html body section.ph.ph9 h1{text-shadow:none!important}
html body section.ph.ph9 .ph9-pic{margin:0;border:1px solid rgba(201,164,106,.45);padding:clamp(10px,1.2vw,16px);background:#14110f}
html body section.ph.ph9 .ph9-pic img{display:block;width:100%;aspect-ratio:4/3.4;object-fit:cover}
@media (max-width:860px){html body section.ph.ph9 .ph9-grid{grid-template-columns:1fr}html body section.ph.ph9 .ph9-pic{order:-1;max-width:560px}}
/* Psychoanalytic therapy: the photo on its own on top, the writing in a dark band beneath (Pomelli look) */
html body section.ph.ph-split{display:block!important;min-height:0!important;padding:var(--nav-h) 0 0!important;background:#1c1816!important}
html body section.ph.ph-split .phs-pic{margin:0;height:clamp(300px,52vh,560px);overflow:hidden}
html body section.ph.ph-split .phs-pic img{display:block;width:100%;height:100%;object-fit:cover;object-position:30% 45%}
html body section.ph.ph-split .phs-band{background:#1c1816;padding-block:clamp(44px,5.5vw,80px)}
html body section.ph.ph-split .panel{background:none!important;box-shadow:none!important;padding:0!important;margin:0!important;max-width:880px!important;backdrop-filter:none!important}
html body section.ph.ph-split h1,html body section.ph.ph-split .lede,html body section.ph.ph-split .for{text-shadow:none!important}
html body section.ph.ph-split .lede{color:rgba(239,230,214,.88)!important}
@media (max-width:600px){html body section.ph.ph-split .phs-pic{height:300px}}
/* therapy page band: black, like the Pomelli design */
html body section.ph.ph-split,html body section.ph.ph-split .phs-band{background:#0e0c0b!important}
html body section.ph.ph-split h1{color:#faf6ef!important}
html body section.ph.ph-split .lede{color:#f1ece4!important}
/* "A Space Built For Reflection", set as in the Pomelli design */
html body section.ph.ph-split .phs-refl{font-family:"Cormorant Garamond",Georgia,serif!important;font-weight:400;font-style:normal;font-size:clamp(2.8rem,5.4vw,4.4rem);line-height:1.08;letter-spacing:.005em;color:#ffffff!important;margin:6px 0 clamp(22px,2.6vw,34px);text-shadow:none}
html body section.ph.ph-split .phs-refl{margin-top:0}
/* the greeting: figures drawn like the two-chairs scene (dark fill, cream outline), white circle, clear middle */
html body .greet9{display:block;width:min(100%,300px);height:auto;margin:clamp(30px,4vw,56px) 0 0;overflow:hidden}
html body .greet9 .chair,html body .greet9 .pose circle,html body .greet9 .pose path{fill:#14100c;stroke:#efe4cf;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round}
html body .greet9 .pose{transition:opacity .6s ease,transform .6s ease}
html body .greet9 .leg,html body .greet9 .arm{transform-box:fill-box;transform-origin:50% 0}
html body .greet9 .arm{transition:transform .7s ease}
html body .greet9 .left .stand{opacity:0}
html body .greet9 .right .sit{opacity:0}
html body .greet9 .walker{transform:translateX(-150px);transition:transform 2.4s linear}
html body .greet9.walking .walker,html body .greet9.arrived .walker{transform:translateX(0)}
html body .greet9.walking .right .leg.l1{animation:g9step .5s ease-in-out infinite alternate}
html body .greet9.walking .right .leg.l2{animation:g9step .5s ease-in-out infinite alternate-reverse}
@keyframes g9step{from{transform:rotate(-14deg)}to{transform:rotate(14deg)}}
html body .greet9.rise .left .sit{opacity:0}
html body .greet9.rise .left .stand{opacity:1}
html body .greet9.greet .stand{transform:translateX(24px)}
html body .greet9.greet .stand .arm{transform:rotate(-72deg)}
html body .greet9.seated .stand{opacity:0!important;transform:none!important}
html body .greet9.seated .sit{opacity:1!important}
html body .greet9 .ring{fill:none;stroke:#fff;stroke-width:5;stroke-dasharray:855;stroke-dashoffset:855;transform-box:view-box;transform-origin:150px 150px;transform:rotate(-90deg);transition:stroke-dashoffset 1.8s ease}
html body .greet9.ring-on .ring{stroke-dashoffset:0}
/* Therapy page, "We listen…": centred heading, two text columns, the library film framed wide, three cards beneath */
html body section#approach.ap9{background:#120e0b!important}
html body section.ap9 .wrap{max-width:calc(1040px + 2*clamp(20px,9vw,140px))!important}
html body section.ap9 .ap9-head{text-align:center;max-width:820px;margin:0 auto clamp(34px,4vw,52px)}
html body section.ap9 .ap9-head h2{font-size:clamp(2.3rem,4.4vw,3.6rem);line-height:1.12;margin:0}
html body section.ap9 .ap9-rule{display:block;width:64px;height:1px;background:var(--amber);margin:clamp(22px,2.6vw,32px) auto 0}
html body section.ap9 .ap9-text{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);margin:0 auto clamp(40px,5vw,64px)}
html body section.ap9 .ap9-text p{margin:0;font-size:clamp(1.05rem,1.3vw,1.18rem);line-height:1.75;min-width:0}
html body section.ap9 .wont-film{margin:0 0 clamp(36px,4.5vw,56px);border:1px solid rgba(201,164,106,.45);padding:clamp(10px,1.2vw,16px);background:#0b0908;max-width:none;width:auto;position:static}
html body section.ap9 .wont-film video{display:block;width:100%;height:clamp(220px,30vw,380px);object-fit:cover;border-radius:0}
html body section.ap9 .wont{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(14px,1.8vw,22px)!important;max-width:none!important;margin:0!important}
html body section.ap9 .wont > div{border:1px solid rgba(201,164,106,.32)!important;background:#1a1512;padding:clamp(22px,2.4vw,32px)!important}
html body section.ap9 .wont > div:last-child{border-bottom:1px solid rgba(201,164,106,.32)!important}
html body section.ap9 .wont .hand{color:var(--amber)!important;font-size:.82rem!important}
html body section.ap9 .wont h3{font-size:clamp(1.35rem,1.8vw,1.6rem)!important}
html body section.ap9 .wont p{font-size:1.02rem!important}
@media (max-width:860px){html body section.ap9 .ap9-text{grid-template-columns:1fr}html body section.ap9 .wont{grid-template-columns:1fr!important}}
html body section.ap9 .wont-film{height:auto!important;min-height:0!important;aspect-ratio:auto!important;border-radius:0!important;box-shadow:none!important;align-self:auto}
html body section.ap9 .wont-film video{position:static!important;inset:auto!important;height:clamp(220px,30vw,380px)!important;width:100%!important}
/* after the swap: film on top, couch photo in the frame */
html body section.ph.ph-split .phs-pic video{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
html body section.ap9 .wont-film img{display:block;width:100%;height:clamp(220px,30vw,380px);object-fit:cover;object-position:50% 45%}
html body section.ap9 .wont .hand{font-size:.98rem!important}
html body section.ap9 .wont p:not(.hand){margin-top:1.4em!important}
html body section#crossroads{padding-top:clamp(20px,3vw,40px)!important}
/* topic buttons: a little larger, square corners */
html body .topic-links a{border-radius:0!important;font-size:clamp(1rem,1.2vw,1.12rem)!important;padding:.75em 1.35em!important}
/* topic buttons: solid black, an even grid of equal boxes */
html body .topic-links{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;max-width:1040px!important;margin-inline:auto!important;justify-content:stretch!important}
html body .topic-links a{display:flex!important;align-items:center;justify-content:center;text-align:center;min-height:64px;background:#0e0c0b!important;border:1px solid rgba(239,228,207,.16)!important;box-shadow:none!important;border-radius:0!important;opacity:1!important;color:#efe6d6!important;font-size:clamp(.95rem,1.1vw,1.05rem)!important;padding:.8em 1em!important;transition:border-color .25s,color .25s}
html body .topic-links a:hover,html body .topic-links a.on{background:#0e0c0b!important;border-color:var(--amber)!important;color:var(--amber-2)!important}
@media (max-width:860px){html body .topic-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
html body .topic-links{grid-auto-rows:1fr!important;max-width:1120px!important}html body .topic-links a{line-height:1.3!important;min-height:72px}
/* bubbles drift up out of the dark scene and into the cream banner above as they fade */
html body section#crossroads{position:relative;z-index:2;overflow:visible!important}
html body section#crossroads .meet.talk{overflow:visible!important}
html body section.cross9{position:relative;z-index:1}
html body .tb.fly{animation:soapUp 9s cubic-bezier(.3,.6,.4,1) forwards!important}
@keyframes soapUp{0%{opacity:0;transform:translate(0,0) scale(.18);filter:blur(2px)}9%{opacity:1;filter:blur(0)}17%{transform:translate(var(--x1),var(--y1)) scale(1)}55%{opacity:1;filter:blur(0)}100%{opacity:0;transform:translate(var(--x2),calc(var(--y2) - var(--lift,300px))) scale(1.12);filter:blur(6px)}}
@media (max-width:760px){html body .tb{--lift:240px}}
/* therapy page: "You do not need the right words" as a banner (two colour options to choose from) */
html body section.values9.beg9 h2{margin-bottom:0}
html body section.paper.values9.beg9-brown{background:#32271c!important}
html body section.paper.values9.beg9-black{background:#0e0c0b!important}
html body section.paper.opening{padding-top:clamp(48px,5.5vw,76px)!important}
/* therapy page: "In person, or by video" banner, same as Core Values */
html body section.values9.ip9 h2{margin-bottom:0}
html body section.inperson-sec .place{align-items:center}
/* ALL banners share one style (Keren, 23 Oct): headline not bold, same font and sizes; only the colours differ */
html body section.values9 h2,html body section.values9.inst9 h2,html body section.values9.cream9 h2,html body section.values9.beg9 h2,html body section.values9.ip9 h2{font-family:var(--display)!important;font-weight:400!important;font-size:clamp(1.9rem,3vw,2.5rem)!important;letter-spacing:.01em!important}
html body section.values9 .v9-k,html body section.values9.cream9 .v9-k{font-family:var(--display)!important;font-weight:700!important;font-size:clamp(.78rem,.9vw,.86rem)!important;-webkit-text-stroke:0!important}
html body section.paper.values9{padding-block:28px!important}
/* Therapy page, "In person" body: framed photo, centred paragraphs beside it, three cards beneath (like the "We listen" section, in light colours) */
html body section.inperson-sec{padding-block:clamp(56px,6vw,90px)!important}
html body section.inperson-sec > .wrap{max-width:calc(1040px + 2*clamp(20px,9vw,140px))!important}
html body section.inperson-sec .place{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:clamp(28px,4.5vw,64px)!important;align-items:center!important}
html body section.inperson-sec .bench-photo{border-radius:0!important;border:1px solid rgba(138,90,43,.45);padding:clamp(10px,1.2vw,16px);background:#efe8dc;aspect-ratio:auto!important;overflow:hidden}
html body section.inperson-sec .bench-photo img{border-radius:0!important;display:block;width:100%;aspect-ratio:4/3.1;object-fit:cover}
html body section.inperson-sec .lit::before{display:none!important}
html body section.inperson-sec .place .dim{font-size:clamp(1.05rem,1.3vw,1.18rem)!important;line-height:1.75!important;margin:0 0 1em!important}
html body section.inperson-sec .place .dim:last-child{margin-bottom:0!important}
html body section.inperson-sec .inperson-facts{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(14px,1.8vw,22px)!important;margin-top:clamp(40px,5vw,64px)!important;border:0!important;padding:0!important}
html body section.inperson-sec .inperson-facts > div{border:1px solid rgba(138,90,43,.35)!important;background:#efe8dc!important;padding:clamp(22px,2.4vw,32px)!important;margin:0!important}
html body section.inperson-sec .inperson-facts .k{color:#8a5a2b!important;font-weight:700!important;font-size:.98rem!important;letter-spacing:.18em!important;margin:0 0 12px!important}
html body section.inperson-sec .inperson-facts h3{font-size:clamp(1.35rem,1.8vw,1.6rem)!important;color:#1d1813!important;margin:0!important}
html body section.inperson-sec .inperson-facts p:not(.k){margin-top:1.4em!important;font-size:1.02rem!important;line-height:1.65!important;color:#3f362d!important}
@media (max-width:860px){html body section.inperson-sec .place{grid-template-columns:1fr!important}html body section.inperson-sec .inperson-facts{grid-template-columns:1fr!important}}
/* keep the swaying tree inside the frame: frame drawn around the clipped photo */
html body section.inperson-sec .bench-photo{padding:0!important;border:0!important;overflow:hidden!important;box-shadow:0 0 0 clamp(10px,1.2vw,16px) #efe8dc,0 0 0 calc(clamp(10px,1.2vw,16px) + 1px) rgba(138,90,43,.45)!important;margin:clamp(11px,1.3vw,17px)!important}
html body section.inperson-sec .inperson-facts .k{color:#8a5a2b!important}
html body section.sc-light.sc-light.sc-light.sc-light.sc-light.inperson-sec .inperson-facts p.k{color:#8a5a2b!important}
/* In-person cards, more playful: handwritten labels, notes laid down slightly askew, a gold squiggle drawn under each title */
html body section.sc-light.sc-light.sc-light.sc-light.sc-light.inperson-sec .inperson-facts p.k{font-family:var(--hand)!important;font-size:clamp(1.7rem,2.2vw,2rem)!important;letter-spacing:.01em!important;text-transform:none!important;font-weight:400!important;line-height:1!important;-webkit-text-stroke:.6px currentColor;margin:0 0 10px!important}
html body section.inperson-sec .inperson-facts > div{transition:transform .45s cubic-bezier(.3,.7,.3,1.2),box-shadow .45s ease;box-shadow:0 10px 24px -18px rgba(60,40,20,.45)}
html body section.inperson-sec .inperson-facts > div:nth-child(1){transform:rotate(-1.4deg)}
html body section.inperson-sec .inperson-facts > div:nth-child(2){transform:rotate(.9deg) translateY(10px)}
html body section.inperson-sec .inperson-facts > div:nth-child(3){transform:rotate(-.7deg)}
html body section.inperson-sec .inperson-facts > div:hover{transform:rotate(0) translateY(-6px);box-shadow:0 18px 30px -18px rgba(60,40,20,.55)}
html body section.inperson-sec .sq9{display:block;width:120px;height:14px;margin:8px 0 0;overflow:visible}
html body section.inperson-sec .sq9 path{fill:none;stroke:#b8862f;stroke-width:2;stroke-linecap:round;stroke-dasharray:190;stroke-dashoffset:190;transition:stroke-dashoffset 1.4s ease}
html body section.inperson-sec .inperson-facts.drawn .sq9 path{stroke-dashoffset:0}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(2) .sq9 path{transition-delay:.35s}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(3) .sq9 path{transition-delay:.7s}
html body section.inperson-sec .inperson-facts p:not(.k){margin-top:1.1em!important}
@media (max-width:860px){html body section.inperson-sec .inperson-facts > div:nth-child(n){transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){html body section.inperson-sec .sq9 path{stroke-dashoffset:0;transition:none}}
/* the three cards are tossed onto the table one at a time */
html body section.inperson-sec .inperson-facts > div{opacity:0;transition:transform .8s cubic-bezier(.25,1.35,.4,1),opacity .35s ease,box-shadow .45s ease}
html body section.inperson-sec .inperson-facts > div:nth-child(1){transform:translate(-120px,-90px) rotate(-16deg) scale(1.06)}
html body section.inperson-sec .inperson-facts > div:nth-child(2){transform:translate(0,-140px) rotate(12deg) scale(1.06)}
html body section.inperson-sec .inperson-facts > div:nth-child(3){transform:translate(120px,-90px) rotate(15deg) scale(1.06)}
html body section.inperson-sec .inperson-facts.drawn > div{opacity:1}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(1){transform:rotate(-1.4deg);transition-delay:0s}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(2){transform:rotate(.9deg) translateY(10px);transition-delay:.55s}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(3){transform:rotate(-.7deg);transition-delay:1.1s}
html body section.inperson-sec .inperson-facts.drawn > div:hover{transform:rotate(0) translateY(-6px);transition-delay:0s}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(1) .sq9 path{transition-delay:.7s}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(2) .sq9 path{transition-delay:1.25s}
html body section.inperson-sec .inperson-facts.drawn > div:nth-child(3) .sq9 path{transition-delay:1.8s}
@media (max-width:860px){html body section.inperson-sec .inperson-facts > div:nth-child(n){transform:translateY(-40px) rotate(-4deg)}html body section.inperson-sec .inperson-facts.drawn > div:nth-child(n){transform:none}}
@media (prefers-reduced-motion:reduce){html body section.inperson-sec .inperson-facts > div{opacity:1!important;transition:none!important}}
/* in-person cards a bit larger (layout and movement unchanged) */
html body section.inperson-sec > .wrap{max-width:calc(1160px + 2*clamp(20px,9vw,140px))!important}
html body section.inperson-sec .inperson-facts{gap:clamp(18px,2.2vw,28px)!important}
html body section.inperson-sec .inperson-facts > div{padding:clamp(28px,3vw,42px)!important;min-height:clamp(320px,28vw,380px)}
html body section.inperson-sec .inperson-facts h3{font-size:clamp(1.55rem,2.1vw,1.9rem)!important}
html body section.inperson-sec .inperson-facts p:not(.k){font-size:clamp(1.08rem,1.25vw,1.18rem)!important}
html body section.sc-light.sc-light.sc-light.sc-light.sc-light.inperson-sec .inperson-facts p.k{font-size:clamp(1.95rem,2.5vw,2.3rem)!important}
html body section.inperson-sec .sq9{width:140px}
@media (max-width:860px){html body section.inperson-sec .inperson-facts > div{min-height:0}}
/* two figures from the logo come and sit on the cards */
html body section.inperson-sec .inperson-facts{position:relative}
html body section.inperson-sec .walkers9{position:absolute!important;inset:0;pointer-events:none;z-index:20;border:0!important;background:none!important;padding:0!important;margin:0!important;transform:none!important;opacity:1!important;box-shadow:none!important;min-height:0!important}
html body section.inperson-sec .wk{position:absolute;left:0;top:0;width:60px;height:66px;opacity:0;transition:opacity .5s ease}
html body section.inperson-sec .wk.on{opacity:1}
html body section.inperson-sec .wk svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
html body section.inperson-sec .wk circle,html body section.inperson-sec .wk path{fill:#14100c;stroke:#14100c;stroke-width:1.5;stroke-linejoin:round}
html body section.inperson-sec .wk .si{display:none}
html body section.inperson-sec .wk.sitting .si{display:block}
html body section.inperson-sec .wk.sitting .st{display:none}
html body section.inperson-sec .wk.flip svg{transform:scaleX(-1);transform-origin:20px 50%}
html body section.inperson-sec .wk .l1,html body section.inperson-sec .wk .l2{transform-box:fill-box;transform-origin:50% 0}
html body section.inperson-sec .wk.walking .l1{animation:wk9 .45s ease-in-out infinite alternate}
html body section.inperson-sec .wk.walking .l2{animation:wk9 .45s ease-in-out infinite alternate-reverse}
@keyframes wk9{from{transform:rotate(-16deg)}to{transform:rotate(16deg)}}
html body section.inperson-sec .wk.walking .l1,html body section.inperson-sec .wk.walking .l2{animation-duration:.58s!important}
@media (max-width:860px){html body section.inperson-sec .walkers9{display:none}}
/* figures layer sits over the cards (outside the grid); wider cards, larger text, no squiggles */
html body section.inperson-sec .facts-wrap9{position:relative}
html body section.inperson-sec .sq9{display:none!important}
html body section.inperson-sec > .wrap.facts-wrap9{max-width:calc(1340px + 2*clamp(16px,4vw,60px))!important;padding-inline:clamp(16px,4vw,60px)!important}
html body section.inperson-sec .inperson-facts p:not(.k){font-size:clamp(1.22rem,1.5vw,1.38rem)!important;line-height:1.6!important}

/* ===== The room (moved from CIPSEFABLE4) at the end of Our people ===== */
.room-sec,#room-panels,#room-scrim{--espresso:#1b1410;--mahogany:#2b1d16;--mahogany-2:#352620;--milk:#f1e7d6;--milk-2:#cdbfa6;--milk-3:#9a8c78;--honey:#e6bd74;--gold:#b8893a;--gold-2:#8f6a2b;--sage:#8da282;--rule:rgba(230,189,116,.32)}
.room-sec{background:#110e0c;padding:clamp(50px,6vw,90px) 0 clamp(60px,7vw,100px);color:var(--milk)}
.room-sec .room-wrap{max-width:calc(1240px + 2*clamp(16px,4vw,60px));margin:0 auto;padding-inline:clamp(16px,4vw,60px)}
#room-panels .hand{font-family:var(--hand);font-size:1.9rem;line-height:1.05;color:var(--honey);margin:0 0 .3em}
#room-panels h2{font-family:var(--display);font-weight:400;color:var(--milk);line-height:1.12}
#room-panels h2 em{color:var(--honey)}
#room-panels h3{font-family:var(--display);font-weight:400;color:var(--milk)}
#room-panels .print{position:relative;display:block}
#room-panels .print img{width:100%;object-fit:cover}
#room-panels .link{font-family:var(--display);font-style:italic;font-size:1.1rem;text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:2px}
#room-panels .link.p{color:var(--honey)}#room-panels .link.c{color:var(--sage)}
#room-panels .people{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
#room-panels .person{text-decoration:none;display:block;border:1px solid var(--rule);padding:10px 10px 12px}
#room-panels .person:hover{border-color:var(--honey)}
#room-panels .person img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;filter:grayscale(1) contrast(1.05);margin-bottom:10px}
#room-panels .person p{margin:0;font-family:var(--display);font-style:italic;color:var(--honey)}
#room-panels .chips-nav{display:flex;flex-wrap:wrap;gap:10px}
#room-panels .chips-nav a{font-family:var(--display);text-decoration:none;color:var(--milk);border:1px solid var(--rule);padding:7px 12px}
#room-panels .chips-nav a:hover{border-color:var(--honey)}
.room-sec .room-wrap{display:block;margin-top:clamp(60px,8vw,120px)}
.room-lead{font-family:var(--display);font-style:italic;font-size:1.25rem;color:var(--milk-2);margin:0 0 18px;text-align:center}
.room-lead span{color:var(--honey)}
.room-plate{position:relative;border:1px solid var(--rule);background:#2b1d16;padding:clamp(6px,1vw,14px)}
.room-plate > svg{display:block;width:100%;height:auto}
.room-plate .full-stop-x{position:absolute;left:calc(clamp(6px,1vw,14px) + (100% - 2*clamp(6px,1vw,14px))*.9538);top:calc(clamp(6px,1vw,14px) + (100% - 2*clamp(6px,1vw,14px))*.122);margin:0;transform:translate(-50%,-50%);z-index:4;background:var(--honey)}
.room-or{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:baseline;justify-content:center;padding:18px 0 0;font-family:var(--display);font-style:italic;color:var(--milk-3);font-size:1rem}
.room-or a{color:var(--milk-2);text-decoration:none;border-bottom:1px solid var(--rule)}
.room-or a:hover{color:var(--honey);border-color:var(--honey)}
.room-or .hint{color:var(--honey)}
.room-list{display:none}
@media (max-width:720px){
  .room-plate > svg{display:none}
  .room-plate .full-stop-x{position:static;transform:none;margin:0 auto 14px}
  .room-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;list-style:none;margin:0}
}

/* ---- the drawing ---- */
.room{--wall:#efe3cf;--wall-2:#dfd0b5;--floor:#8a6240;--floor-2:#74503300;--line:#4a3426;--ink:#1d1813;--cloth:#56684d;--leather:#6b4a33;--wood:#7a5236;--sky1:#9fb3c9;--sky2:#e9d6b4;--wash:.5;--lamp:0;--outside:#7f8f78;--lblfill:#8f6a2b;--lblstroke:#f4ede2;transition:background 1.5s}
.room .board{stroke:#6e4a30}
.room[data-time="morning"]{--sky1:#b9c8d6;--sky2:#f6e2bb;--wash:.55;--lamp:0}
.room[data-time="day"]{--sky1:#8fb0cf;--sky2:#dfe6ea;--wash:.45;--lamp:0}
.room[data-time="dusk"]{--wall:#4a3426;--wall-2:#3a281d;--floor:#4a3222;--sky1:#5a5a86;--sky2:#e2a06a;--wash:.12;--lamp:.8;--line:#e2b673;--lblfill:#e2b673;--lblstroke:#251d17;--cloth:#56684d}
.room[data-time="dusk"] .board,.room[data-time="night"] .board{stroke:#3b281b}
.room[data-time="night"]{--wall:#2b1d16;--wall-2:#241812;--floor:#3f2a1c;--sky1:#141a2e;--sky2:#2a2f4a;--wash:0;--lamp:1;--outside:#2d3a2e;--line:#e2b673;--lblfill:#e2b673;--lblstroke:#251d17;--cloth:#56684d}
.room .wall{fill:var(--wall)}
.room .floor{fill:var(--floor)}
.room .board{stroke:var(--floor-2);stroke-width:2}
.room .base{fill:var(--wall-2)}
.room .ln{fill:none;stroke:var(--line);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.room .ln.thin{stroke-width:1.3;opacity:.7}
.room .wash{fill:#fff6e2;opacity:calc(var(--wash)*.4);transition:opacity 1.5s}
.room .glow{opacity:var(--lamp);transition:opacity 1.5s}
.room .bulb{opacity:var(--lamp);transition:opacity 1.5s}
.room .sky{transition:fill 1.5s}
.room .obj{cursor:pointer;outline:none}
.room .obj .hit{fill:transparent;stroke:none}
.room .obj .ln{transition:stroke .25s,opacity .25s,filter .25s}
.room .obj:hover .ln,.room .obj:focus-visible .ln,.room .obj.lit .ln{stroke:var(--lblfill);opacity:1;filter:drop-shadow(0 0 5px rgba(184,137,58,.55))}
.room .obj .lbl{font-family:var(--hand);font-size:34px;fill:var(--lblfill);opacity:0;transition:opacity .25s;pointer-events:none;paint-order:stroke;stroke:var(--lblstroke);stroke-width:6px;stroke-linejoin:round}
.room .obj:hover .lbl,.room .obj:focus-visible .lbl,.room .obj.lit .lbl{opacity:1}
.room .obj:focus-visible .ring{stroke:var(--lblfill);stroke-width:2;stroke-dasharray:6 6;fill:none;opacity:1}
.room .ring{opacity:0}
.room .bk{stroke:#1d1813;stroke-width:.6}
.room .frame-sq{fill:#f7efe0;stroke:var(--line);stroke-width:1.6;stroke-linecap:round}
.room .paper{fill:#efe4cd}
.room .sill{fill:var(--wall-2)}

/* ---- phone: the room becomes its objects ---- */
.room-list{display:none}
@media (max-width:720px){
  .room-plate > svg{display:none}
  .room-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 10px;list-style:none;margin:0}
  .room-list button{width:100%;text-align:left;background:var(--mahogany);border:1px solid var(--rule);color:var(--milk);font:inherit;padding:14px 14px 12px;cursor:pointer;display:grid;gap:4px}
  .room-list button:hover{border-color:var(--honey)}
  .room-list svg{width:34px;height:34px;fill:none;stroke:var(--honey);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:4px}
  .room-list b{font-family:var(--display);font-weight:400;font-size:1.15rem}
  .room-list small{font-family:var(--hand);font-size:1.3rem;color:var(--honey);line-height:1}
}

/* ---- panels ---- */
#room-scrim{position:fixed;inset:0;background:rgba(27,20,16,.55);z-index:70;backdrop-filter:blur(2px)}
#room-panels .panel{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);z-index:71;background:var(--mahogany);border-left:1px solid var(--rule);overflow:auto;padding:28px clamp(22px,3vw,44px) 44px;transform:translateX(0);animation:panel-in .35s cubic-bezier(.2,.7,.2,1)}
@keyframes panel-in{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
#room-panels .panel .close{position:sticky;top:0;float:right;background:var(--mahogany);border:1px solid var(--rule);color:var(--milk);font-family:var(--display);font-size:1rem;padding:8px 14px;cursor:pointer;margin:0 0 10px 10px}
#room-panels .panel .hand{font-size:2.1rem;margin:0 0 6px}
#room-panels .panel h2{font-size:clamp(1.8rem,3vw,2.5rem);margin:0 0 18px}
#room-panels .panel p{color:var(--milk-2)}
#room-panels .panel .pl{border:1px solid var(--rule);padding:16px 18px;margin:0 0 12px}
#room-panels .panel .pl h3{font-size:1.25rem;margin:0 0 6px}
#room-panels .panel .pl p{margin:0;font-size:.98rem}
#room-panels .panel .pl .k{font-family:var(--display);font-style:italic;color:var(--honey);margin:0 0 4px;font-size:1rem}
#room-panels .panel .chips-nav{margin:14px 0 20px}
#room-panels .panel .chips-nav a{font-size:.95rem;padding:7px 12px}
#room-panels .panel .onward{margin-top:22px;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}
#room-panels .panel .print{max-width:100%;margin:0 0 20px}
#room-panels .panel .print img{aspect-ratio:3/2}
#room-panels .panel .people{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px}
#room-panels .panel .person{padding:10px 10px 12px}
#room-panels .panel .person img{margin-bottom:10px}
#room-panels .panel .person h3{font-size:1rem}
#room-panels .panel .person p{font-size:.85rem}
#room-panels .panel .shelf-mini{display:flex;align-items:flex-end;gap:2px;height:120px;border-bottom:8px solid var(--mahogany-2);margin-bottom:18px;padding:0 6px}
#room-panels .panel .shelf-mini span{flex:0 0 auto;display:block;background:var(--c);width:var(--w);height:var(--h);box-shadow:inset 2px 0 0 rgba(255,255,255,.12)}
@media (prefers-reduced-motion:reduce){#room-panels .panel{animation:none}.room .wash,.room .glow,.room .bulb,.room .sky{transition:none}}
/* panels sit above everything, including the drawn line and the header */
#thread{z-index:3}
#room-scrim{z-index:70}
#room-panels .panel{z-index:71}

html body .room-sec .room-wrap{margin-top:0!important}
html body #room-scrim{z-index:120!important}html body #room-panels .panel{z-index:121!important}
/* figures: sitting down is a gentle cross-fade; the last sit is slow */
html body section.inperson-sec .wk .si{display:block!important;opacity:0}
html body section.inperson-sec .wk .st{opacity:1}
html body section.inperson-sec .wk svg{transition:opacity .6s ease}
html body section.inperson-sec .wk.sitting .si{opacity:1}
html body section.inperson-sec .wk.sitting .st{display:block!important;opacity:0}
html body section.inperson-sec .wk.slow{transition:opacity .5s ease,transform 1.8s cubic-bezier(.4,0,.2,1)}
html body section.inperson-sec .wk.slow svg{transition:opacity 1.8s ease}
/* Therapy page: the questions as square cards in two even columns, each opening in place */
html body section.faq9{background:#14110f;padding-block:clamp(48px,6vw,84px)}
html body section.faq9 .wrap{max-width:calc(1120px + 2*clamp(20px,9vw,140px))!important}
html body section.faq9 .fq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,20px);align-items:start}
html body section.faq9 .fq{background:#1e1916;border:1px solid rgba(201,164,106,.28);transition:border-color .25s,background .25s}
html body section.faq9 .fq:hover,html body section.faq9 .fq[open]{border-color:rgba(226,182,115,.7);background:#231d19}
html body section.faq9 .fq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:clamp(22px,2.4vw,30px) clamp(22px,2.4vw,32px);min-height:96px}
html body section.faq9 .fq summary::-webkit-details-marker{display:none}
html body section.faq9 .fq-q{font-family:var(--display);font-size:clamp(1.3rem,1.75vw,1.6rem);line-height:1.25;color:#f3ebdd}
html body section.faq9 .fq-i{flex:0 0 18px;width:18px;height:18px;position:relative}
html body section.faq9 .fq-i::before,html body section.faq9 .fq-i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--amber);transition:transform .3s ease}
html body section.faq9 .fq-i::after{transform:rotate(90deg)}
html body section.faq9 .fq[open] .fq-i::after{transform:rotate(0)}
html body section.faq9 .fq-a{padding:0 clamp(22px,2.4vw,32px) clamp(24px,2.6vw,32px);border-top:1px solid rgba(201,164,106,.18);margin:0 clamp(22px,2.4vw,32px);padding-inline:0;padding-top:18px}
html body section.faq9 .fq-a p{margin:0;font-family:var(--serif);font-size:clamp(1.05rem,1.25vw,1.15rem);line-height:1.7;color:rgba(239,230,214,.82)}
html body section.faq9 .fq-a a{color:var(--amber);text-decoration:underline;text-decoration-color:rgba(226,182,115,.45);text-underline-offset:4px}
html body section.faq9 .fq-cta{text-align:center;margin:clamp(32px,4vw,48px) 0 0}
@media (max-width:760px){html body section.faq9 .fq-grid{grid-template-columns:1fr}}
html body section.faq9 .fq[open]{grid-column:1 / -1}html body section.faq9 .fq[open] .fq-a p{max-width:46em}
html body section.faq9 .fq-grid{grid-auto-flow:row dense}
/* the cards give under the figures' weight: a small dip and tilt, then they settle back */
html body section.inperson-sec .inperson-facts > div:nth-child(1){--r:-1.4deg;--y:0px}
html body section.inperson-sec .inperson-facts > div:nth-child(2){--r:.9deg;--y:10px}
html body section.inperson-sec .inperson-facts > div:nth-child(3){--r:-.7deg;--y:0px}
html body section.inperson-sec .inperson-facts.drawn > div.wob{animation:cardWob 1.2s cubic-bezier(.3,.6,.3,1)}
html body section.inperson-sec .inperson-facts.drawn > div.wobl{animation:cardWobL 1.2s cubic-bezier(.3,.6,.3,1)}
@keyframes cardWob{0%{transform:rotate(var(--r)) translateY(var(--y))}25%{transform:rotate(calc(var(--r) + 2.4deg)) translateY(calc(var(--y) + 7px))}55%{transform:rotate(calc(var(--r) - 1.1deg)) translateY(calc(var(--y) + 2px))}80%{transform:rotate(calc(var(--r) + .5deg)) translateY(var(--y))}100%{transform:rotate(var(--r)) translateY(var(--y))}}
@keyframes cardWobL{0%{transform:rotate(var(--r)) translateY(var(--y))}25%{transform:rotate(calc(var(--r) - 2.4deg)) translateY(calc(var(--y) + 7px))}55%{transform:rotate(calc(var(--r) + 1.1deg)) translateY(calc(var(--y) + 2px))}80%{transform:rotate(calc(var(--r) - .5deg)) translateY(var(--y))}100%{transform:rotate(var(--r)) translateY(var(--y))}}
@media (prefers-reduced-motion:reduce){html body section.inperson-sec .inperson-facts > div.wob,html body section.inperson-sec .inperson-facts > div.wobl{animation:none}}
/* therapy top: the film reaches further down the screen, so less of it is cut away */
html body section.ph.ph-split .phs-pic{height:calc(100svh - var(--nav-h) - 40px)!important;min-height:520px;max-height:980px}
html body section.ph.ph-split .phs-pic video{object-position:50% 40%}
@media (max-width:860px){html body section.ph.ph-split .phs-pic{height:min(78svh,620px)!important;min-height:0}}
html body section.ph.ph-split .phs-band{padding-block:clamp(26px,3vw,44px)!important}
html body section.ph.ph-split .phs-refl{margin-bottom:clamp(12px,1.4vw,20px)!important}
/* therapy top band: type sized to match the home page (headline as "You do not need the right words", text as its paragraphs) */
html body section.ph.ph-split .phs-refl{font-size:clamp(2.3rem,4vw,3.4rem)!important;line-height:1.05!important}
html body section.ph.ph-split .for{font-size:clamp(1.4rem,1.9vw,1.75rem)!important;margin-bottom:8px!important}
html body section.ph.ph-split h1{font-size:clamp(1.8rem,2.9vw,2.5rem)!important;line-height:1.12!important;margin:0 0 16px!important}
html body section.ph.ph-split .lede{font-size:clamp(1.05rem,1.3vw,1.2rem)!important;line-height:1.7!important;max-width:44em}
html body section.ph.ph-split .subnav{margin-top:22px}
/* therapy top band: well below the home page sizes */
html body section.ph.ph-split .phs-refl{font-size:clamp(1.7rem,2.6vw,2.3rem)!important;line-height:1.08!important;margin-bottom:10px!important}
html body section.ph.ph-split .for{font-size:clamp(1.15rem,1.4vw,1.35rem)!important;margin-bottom:4px!important}
html body section.ph.ph-split h1{font-size:clamp(1.35rem,1.9vw,1.7rem)!important;margin:0 0 12px!important}
html body section.ph.ph-split .lede{font-size:clamp(.98rem,1.1vw,1.06rem)!important;line-height:1.65!important;max-width:46em}
html body section.ph.ph-split .subnav{margin-top:16px}
html body section.ph.ph-split .subnav a{font-size:.82rem!important;padding:.5em 1em!important}
/* therapy top band: narrower column, wider side margins */
html body section.ph.ph-split .phs-band > .wrap{max-width:calc(820px + 2*clamp(20px,9vw,140px))!important}
html body section.ph.ph-split .lede{max-width:none}
/* therapy top: the whole film is shown, never cropped; a soft, darkened copy fills the sides */
html body section.ph.ph-split .phs-pic{position:relative;overflow:hidden;background:#0b0908;height:calc(100svh - var(--nav-h) - 30px)!important;min-height:460px;max-height:900px}
html body section.ph.ph-split .phs-pic video.phs-blur{position:absolute;inset:-40px;width:calc(100% + 80px)!important;height:calc(100% + 80px)!important;object-fit:cover;filter:blur(28px) brightness(.45) saturate(.9);transform:scale(1.05)}
html body section.ph.ph-split .phs-pic video.phs-main{position:relative;z-index:1;display:block;height:100%!important;width:auto!important;max-width:100%;margin:0 auto;object-fit:contain;aspect-ratio:560/668;box-shadow:0 0 60px rgba(0,0,0,.55)}
@media (max-width:860px){html body section.ph.ph-split .phs-pic{height:min(80svh,620px)!important;min-height:0}}
/* therapy top film: kept within the page margins instead of edge to edge */
html body section.ph.ph-split{padding-top:calc(var(--nav-h) + clamp(20px,2.4vw,36px))!important}
html body section.ph.ph-split .phs-pic{width:auto!important;max-width:calc(1040px)!important;margin:0 clamp(20px,9vw,140px)!important;border:1px solid rgba(201,164,106,.4)}
@media (min-width:1320px){html body section.ph.ph-split .phs-pic{margin:0 auto!important}}
@media (max-width:860px){html body section.ph.ph-split .phs-pic{margin:0 16px!important}}
/* therapy top band: headings a step larger again (paragraph unchanged) */
html body section.ph.ph-split .phs-refl{font-size:clamp(2.05rem,3.3vw,2.9rem)!important;margin-bottom:12px!important}
html body section.ph.ph-split .for{font-size:clamp(1.3rem,1.65vw,1.55rem)!important}
html body section.ph.ph-split h1{font-size:clamp(1.6rem,2.45vw,2.15rem)!important}
/* therapy top film: the soft sides run all the way to the screen edges; the film itself stays whole in the middle */
html body section.ph.ph-split{padding-top:var(--nav-h)!important}
html body section.ph.ph-split .phs-pic{max-width:none!important;margin:0!important;border:0!important;width:100%!important}
@media (min-width:1320px){html body section.ph.ph-split .phs-pic{margin:0!important}}
@media (max-width:860px){html body section.ph.ph-split .phs-pic{margin:0!important}}
/* therapy top film: the top part (upper shelves) trimmed away */
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/510!important;object-fit:cover!important;object-position:50% 100%!important}
/* caption under the greeting figures */
html body .greet9-cap{font-family:var(--hand);font-size:clamp(1.9rem,2.5vw,2.4rem);line-height:1.05;color:#8a5a2b!important;margin:14px 0 0;width:min(100%,300px);text-align:center;-webkit-text-stroke:.5px currentColor;opacity:0;transition:opacity 1.4s ease .3s}
html body .greet9.ring-on + .greet9-cap{opacity:1}
@media (prefers-reduced-motion:reduce){html body .greet9-cap{opacity:1}}
/* therapy top film: bottom (chair seat and table legs) trimmed too */
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/420!important;object-position:50% 64%!important}
/* talk bubbles larger */
html body .talk .tbs{--d:215px}
html body .talk .tb{font-size:clamp(1.22rem,1.65vw,1.45rem)!important;padding:0 26px!important}
@media (max-width:1100px){html body .talk .tbs{--d:188px}}
@media (max-width:760px){html body .talk .tbs{--d:160px}html body .talk .tb{font-size:1.1rem!important;padding:0 16px!important}}
/* larger bubbles spread a little further apart so they don't overlap */
@media (min-width:1101px){html body .talk .tb:nth-child(1){--x1:10px;--y1:-130px;--x2:95px;--y2:-230px}html body .talk .tb:nth-child(2){--x1:-330px;--y1:-50px;--x2:-420px;--y2:-140px}html body .talk .tb:nth-child(3){--x1:-160px;--y1:-215px;--x2:-200px;--y2:-290px}}
/* therapy top film: more of the top shelf trimmed */
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/350!important;object-position:50% 72%!important}
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/318!important;object-position:50% 74.5%!important}
/* the line appears only once the circle has fully closed */
html body .greet9-cap{transition:opacity 1.2s ease 2s!important}
html body .greet9:not(.ring-on) + .greet9-cap{transition:none!important;opacity:0!important}
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/278!important;object-position:50% 66.4%!important}
/* back to the narrower film with wider soft margins (top trimmed only) */
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/350!important;object-position:50% 72%!important}
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/420!important;object-position:50% 64%!important}
/* therapy top film: keep the film as narrow as the full, uncut clip; trimming top and bottom now makes the band shorter, not the picture wider */
html body section.ph.ph-split .phs-pic{--fw:min(calc((100svh - var(--nav-h) - 30px) * .838), 92vw);height:auto!important;min-height:0!important;max-height:none!important}
html body section.ph.ph-split .phs-pic video.phs-main{width:var(--fw)!important;height:auto!important;max-width:none;aspect-ratio:560/278!important;object-fit:cover!important;object-position:50% 66.4%!important}
/* the line arrives gently: a slow fade with a soft drift upward and a slight unblur */
html body .greet9-cap{transform:translateY(10px);filter:blur(3px);transition:opacity 3.2s cubic-bezier(.25,.1,.25,1) 2s,transform 3.2s cubic-bezier(.25,.1,.25,1) 2s,filter 3.2s ease 2s!important}
html body .greet9.ring-on + .greet9-cap{transform:none;filter:none}
/* therapy top: give back the last strip cropped off the top; writing below lines up with the film's edges */
html body section.ph.ph-split{--fw:min(calc((100svh - var(--nav-h) - 30px) * .838), 92vw)}
html body section.ph.ph-split .phs-pic video.phs-main{aspect-ratio:560/308!important;object-position:50% 63.6%!important}
html body section.ph.ph-split .phs-band > .wrap{max-width:none!important;width:var(--fw)!important;padding-inline:0!important;margin-inline:auto!important}
html body section.ph.ph-split .lede{max-width:none!important}
@media (max-width:860px){html body section.ph.ph-split .phs-band > .wrap{width:auto!important;padding-inline:16px!important}}
/* therapy page opening (sage cream) section: much less empty space */
html body section.paper.opening{padding-top:clamp(40px,4.5vw,64px)!important;padding-bottom:clamp(36px,4vw,56px)!important}
html body section.paper.opening .greet9{margin-top:clamp(18px,2.4vw,30px)!important}
/* questions: lighter cards (warm taupe), cream text */
html body section.faq9 .fq{background:#4a4036!important;border-color:rgba(226,182,115,.38)!important}
html body section.faq9 .fq:hover,html body section.faq9 .fq[open]{background:#544a3f!important;border-color:rgba(226,182,115,.8)!important}
html body section.faq9 .fq-a{border-top-color:rgba(239,230,214,.22)!important}
html body section.faq9 .fq-a p{color:rgba(246,239,226,.9)!important}
/* therapy top: try the soft blurred film running all the way down behind the black band */
html body section.ph.ph-split{position:relative!important;overflow:hidden!important;background:#0b0908!important}
html body section.ph.ph-split .phs-pic{position:static!important;overflow:visible!important;background:none!important}
html body section.ph.ph-split .phs-pic video.phs-blur{position:absolute!important;top:var(--nav-h)!important;left:-60px!important;right:-60px!important;bottom:-60px!important;width:calc(100% + 120px)!important;height:calc(100% - var(--nav-h) + 60px)!important;inset:auto;z-index:0}
html body section.ph.ph-split .phs-pic video.phs-main{position:relative;z-index:1}
html body section.ph.ph-split .phs-band{position:relative;z-index:1;background:linear-gradient(180deg,rgba(11,9,8,.35),rgba(11,9,8,.55))!important}
html body section.values9.room9-ban h2{margin-bottom:0}
html body section.values9.room9-ban .v9-sub{margin-top:10px}
/* the room drawing in a cream frame */
html body .room-sec .room-plate{background:#f6f1e6!important;border:1px solid rgba(138,90,43,.45)!important;padding:clamp(14px,1.8vw,26px)!important;box-shadow:0 18px 40px -22px rgba(0,0,0,.8)}
/* "Before you go", handwritten in black in the banner's top-left corner */
html body section.values9.room9-ban{position:relative}
html body section.values9.room9-ban .room9-hand{position:absolute;top:clamp(14px,1.8vw,24px);left:clamp(20px,4vw,64px);margin:0;font-family:var(--hand);font-size:clamp(1.9rem,2.6vw,2.5rem);line-height:1;color:#14100c!important;-webkit-text-stroke:.5px currentColor;z-index:1}
html body section.values9.room9-ban .room9-hand span{opacity:0;transition:opacity .18s ease}
html body section.values9.room9-ban .room9-hand span.on{opacity:1}
@media (max-width:620px){html body section.values9.room9-ban{padding-top:64px!important}}
html body section.values9.room9-ban .room9-hand span{color:#14100c!important}
/* the rest of the banner waits for "Before you go" to finish, then fades in */
html body section.values9.room9-ban.js-wait .wrap > *{opacity:0;transform:translateY(8px);transition:opacity 1.4s ease,transform 1.4s ease}
html body section.values9.room9-ban.js-wait.shown .wrap > *{opacity:1;transform:none}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(2){transition-delay:.5s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(3){transition-delay:.9s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(4){transition-delay:1.3s}
/* order: "Come in, take your time" first, then a pause, then the rest */
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(1){transition-delay:0s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(2){transition-delay:2.2s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(3){transition-delay:2.7s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(4){transition-delay:3.1s}
/* headline as a slow wave from left to right */
html body section.values9.room9-ban.js-wait .wrap > h2{opacity:1!important;transform:none!important;transition:none!important}
html body section.values9.room9-ban h2 .wv{display:inline-block;opacity:0;transform:translateY(.55em);transition:opacity 1.1s ease,transform 1.6s cubic-bezier(.3,1.5,.5,1);transition-delay:calc(2.2s + var(--i) * 85ms)}
html body section.values9.room9-ban.shown h2 .wv{opacity:1;transform:none}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(3){transition-delay:6.4s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(4){transition-delay:6.9s}
@media (prefers-reduced-motion:reduce){html body section.values9.room9-ban h2 .wv{opacity:1;transform:none;transition:none}}
html body section.values9.room9-ban h2 .wv{color:inherit!important}
/* slower wave, longer pause before the line underneath */
html body section.values9.room9-ban h2 .wv{transition:opacity 1.5s ease,transform 2.2s cubic-bezier(.3,1.5,.5,1);transition-delay:calc(2.2s + var(--i) * 130ms)}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(3){transition-delay:10.6s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(4){transition-delay:11.1s}
/* the chaise opens as a cloud: soft white, scalloped edge, no gold */
html body #room-panels .panel[data-panel="chaise"]{
  --cl:#fcfaf6;
  background:
    radial-gradient(circle at 46px 50%, var(--cl) 40px, transparent 41px) 0 0/92px 76px repeat-y,
    radial-gradient(circle at 34px 50%, var(--cl) 27px, transparent 28px) 0 38px/92px 76px repeat-y,
    linear-gradient(180deg,#fdfcf9 0%,#f6f2ec 100%) 46px 0/100% 100% no-repeat;
  border-left:0;
  padding-left:clamp(70px,7vw,96px);
  filter:drop-shadow(-14px 0 34px rgba(30,22,16,.28));
  color:#2a241d}
html body #room-panels .panel[data-panel="chaise"] .close{background:var(--cl);border:1px solid rgba(42,36,29,.22);border-radius:999px;color:#2a241d}
html body #room-panels .panel[data-panel="chaise"] .hand{color:#8c8378!important}
html body #room-panels .panel[data-panel="chaise"] h2{color:#1d1813!important}
html body #room-panels .panel[data-panel="chaise"] h2 em{color:#6f6458!important}
html body #room-panels .panel[data-panel="chaise"] p{color:#4a4035!important}
html body #room-panels .panel[data-panel="chaise"] .pl{background:#fff;border:0;border-radius:40px;padding:20px 28px;margin:0 0 16px;box-shadow:0 14px 34px -18px rgba(60,48,36,.35),0 0 0 8px rgba(255,255,255,.55);animation:cloud-drift 7s ease-in-out infinite}
html body #room-panels .panel[data-panel="chaise"] .pl:nth-of-type(2){animation-delay:-2.3s;margin-left:18px}
html body #room-panels .panel[data-panel="chaise"] .pl:nth-of-type(3){animation-delay:-4.6s;margin-right:14px}
html body #room-panels .panel[data-panel="chaise"] .pl h3{color:#1d1813!important}
html body #room-panels .panel[data-panel="chaise"] .pl .k{color:#9a8f84!important}
html body #room-panels .panel[data-panel="chaise"] .link.p{color:#1d1813!important}
@keyframes cloud-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){html body #room-panels .panel[data-panel="chaise"] .pl{animation:none}}
/* readers' shelf: "is it already on our shelves?" search + A to Z list */
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.shelf-search{margin-top:34px;max-width:760px;padding:22px 24px;border:1px solid rgba(226,182,115,.28);border-radius:14px;background:rgba(239,228,207,.03)}
.shelf-search .ss-k{font-family:var(--hand);font-size:clamp(1.7rem,2.3vw,2.1rem);color:var(--amber);margin:0 0 12px;line-height:1}
#shelf-q-form{display:flex;gap:10px;flex-wrap:wrap}
#shelf-q{flex:1 1 260px;font:inherit;font-size:1rem;padding:.8em .95em;border-radius:12px;border:1px solid rgba(239,228,207,.22);background:rgba(239,228,207,.06);color:var(--cream)}
#shelf-q::placeholder{color:var(--cream-3)}
.sq-out{margin-top:16px}
.sq-out .sq-yes,.sq-out .sq-none{margin:0 0 8px;color:var(--cream-2)}
.sq-list{list-style:none;margin:0;padding:0}
.sq-list li button{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(239,228,207,.12);padding:10px 2px;color:var(--cream);font:inherit;cursor:pointer}
.sq-list li button:hover i{color:var(--amber)}
.sq-list i{font-family:var(--display);font-size:1.15rem}
.sq-list span{font-family:var(--sans);font-size:.8rem;letter-spacing:.05em;color:var(--cream-3)}
.sq-list small{margin-left:auto;font-family:var(--display);font-style:italic;color:var(--amber);font-size:.95rem}
.sq-add{font:inherit;background:none;border:1px solid rgba(226,182,115,.5);color:var(--amber);border-radius:999px;padding:8px 16px;cursor:pointer}
.sq-add:hover{background:rgba(226,182,115,.1)}
.rd-all{margin-top:22px;max-width:760px}
.rd-all summary{cursor:pointer;font-family:var(--display);font-style:italic;font-size:1.1rem;color:var(--cream-2)}
.rd-all summary:hover{color:var(--amber)}
.rd-all .sq-list{margin-top:10px}
/* chaise: one big cloud */
html body #room-panels .panel[data-panel="chaise"]{--cl:#f5f1ea;background:
    radial-gradient(circle at 46px 50%, var(--cl) 40px, transparent 41px) 0 0/92px 76px repeat-y,
    radial-gradient(circle at 34px 50%, var(--cl) 27px, transparent 28px) 0 38px/92px 76px repeat-y,
    linear-gradient(var(--cl),var(--cl)) 46px 0/100% 100% no-repeat}
html body #room-panels .panel[data-panel="chaise"] .hand{margin-bottom:0}
.cloud9{position:relative;isolation:isolate;margin:70px 0 34px;animation:cloud-drift 8s ease-in-out infinite}
.cloud9::before,.cloud9::after,.cloud9-in::before,.cloud9-in::after{content:"";position:absolute;z-index:-1;background:#fff;border-radius:50%}
.cloud9::before{width:46%;aspect-ratio:1;left:8%;top:-62px}
.cloud9::after{width:58%;aspect-ratio:1;right:4%;top:-96px}
.cloud9-in::before{width:34%;aspect-ratio:1;left:-6%;top:22%}
.cloud9-in::after{width:30%;aspect-ratio:1;right:-5%;bottom:-6%}
.cloud9-in{position:relative;background:#fff;border-radius:140px;padding:34px clamp(26px,4vw,44px) 46px;text-align:center}
.cloud9{filter:drop-shadow(0 18px 28px rgba(70,56,42,.16))}
html body #room-panels .panel[data-panel="chaise"] .cloud9 h2{font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.15;margin:0 0 18px;position:relative}
html body #room-panels .panel[data-panel="chaise"] .cloud9 .c9-line{font-family:var(--display);font-style:italic;font-size:1.12rem;color:#7b6e5c!important;margin:0 0 10px;position:relative}
html body #room-panels .panel[data-panel="chaise"] .cloud9 .c9-end{font-size:1.15rem;color:#1d1813!important;margin:0;position:relative}
@media (prefers-reduced-motion:reduce){.cloud9{animation:none}}
.cloud9{margin:118px 6px 40px 10px}
.cloud9::after{width:54%;right:6%;top:-92px}
.cloud9-in::after{width:26%;right:2%;bottom:-9%}
.cloud9-in::before{width:30%;left:-5%;top:26%}
/* the suggestion form glows softly when a visitor is sent to it from the search */
.lib-form.lib-glow{animation:lib-glow 2.4s ease-out}
@keyframes lib-glow{0%{box-shadow:0 0 0 0 rgba(226,182,115,0)}25%{box-shadow:0 0 0 10px rgba(226,182,115,.22)}100%{box-shadow:0 0 0 0 rgba(226,182,115,0)}}
.lib-form{border-radius:14px}
/* "What would you add?": one word at a time, "you" in gold */
h2.ww9 em{color:var(--amber)}
h2.ww9 .ww{display:inline-block}
h2.ww9.ww-wait .ww{opacity:0;transform:translateY(.3em);transition:opacity 1s ease,transform 1.2s ease;transition-delay:calc(var(--i) * 550ms)}
h2.ww9.ww-wait.in .ww{opacity:1;transform:none}
html body h2.ww9.ww-wait .ww{opacity:0!important;transform:translateY(.3em)!important;animation:none!important;transition:opacity 1s ease,transform 1.2s ease!important;transition-delay:calc(var(--i) * 550ms)!important}
html body h2.ww9.ww-wait.in .ww{opacity:1!important;transform:none!important}
html body h2.ww9.ww-wait .ww{transition:none!important}
html body h2.ww9.ww-wait.in .ww{transition:opacity 1s ease,transform 1.2s ease!important;transition-delay:calc(var(--i) * 550ms)!important}
/* chaise: free association, dreaming while awake */
html body #room-panels .panel[data-panel="chaise"] > *:not(.drift9){position:relative;z-index:1}
html body #room-panels .panel[data-panel="chaise"] .close{position:sticky}
.drift9{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.drift9 .dw{position:absolute;bottom:-40px;font-family:var(--hand);color:#9a8f82;white-space:nowrap;opacity:0;animation:dw-rise var(--d,15s) linear forwards}
@keyframes dw-rise{
  0%{opacity:0;transform:translate(0,0) rotate(var(--r0,-4deg))}
  12%{opacity:.75}
  50%{transform:translate(var(--sx,18px),-45vh) rotate(var(--r1,3deg))}
  80%{opacity:.5}
  100%{opacity:0;transform:translate(calc(var(--sx,18px) * -.6),-92vh) rotate(var(--r0,-4deg))}}
html body #room-panels .panel[data-panel="chaise"] .c9-hand{font-family:var(--hand);font-size:clamp(1.5rem,2.2vw,1.9rem);color:#8c8378!important;margin:0 0 6px;line-height:1;transform:rotate(-2deg)}
html body #room-panels .panel[data-panel="chaise"] .cloud9 .c9-line{font-size:1.08rem;line-height:1.5}
html body #room-panels .panel[data-panel="chaise"] .cloud9 .c9-end{font-size:1.05rem}
.cloud9-in{animation:cloud-breathe 9s ease-in-out infinite}
@keyframes cloud-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
/* the little thought-bubble trail, rising from the couch */
.cloud9 .tb{position:absolute;background:#fff;border-radius:50%;z-index:-1;animation:tb-pulse 3.6s ease-in-out infinite}
.cloud9 .tb1{width:34px;height:34px;left:9%;bottom:-46px}
.cloud9 .tb2{width:20px;height:20px;left:4%;bottom:-82px;animation-delay:.4s}
.cloud9 .tb3{width:11px;height:11px;left:1%;bottom:-106px;animation-delay:.8s}
@keyframes tb-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}
html body #room-panels .panel[data-panel="chaise"] .onward{margin-top:120px}
@media (prefers-reduced-motion:reduce){.drift9{display:none}.cloud9-in,.cloud9 .tb{animation:none}}
html body h2.ww9 em,html body h2.ww9 em.ww{font-style:italic!important}
/* buttons are never blurred by a parent's text shadow */
html body .btn,html body .btn *{text-shadow:none!important}
/* drifting thoughts pass behind a soft halo, so the links stay clear */
html body #room-panels .panel[data-panel="chaise"] .onward{background:var(--cl);box-shadow:0 0 26px 22px var(--cl);border-radius:30px}
/* "A shelf for your books" types itself */
.cap.tw9{font-family:'Special Elite',var(--sans)!important;letter-spacing:.12em}
.cap.tw9.tw-wait .tc{opacity:0}
.cap.tw9.tw-wait .tc.on{opacity:1}
.cap.tw9 .caret{display:inline-block;width:.55em;height:1em;margin-left:2px;vertical-align:-.12em;border-bottom:2px solid currentColor;animation:caret-blink 1s steps(1) infinite}
.cap.tw9.typed .caret{animation:caret-blink 1s steps(1) 3 forwards,caret-off .1s 3s forwards}
@keyframes caret-blink{50%{opacity:0}}
@keyframes caret-off{to{opacity:0}}
.cap.tw9.tw-wait .tc{opacity:1;display:none}
.cap.tw9.tw-wait .tc.on{display:inline}
/* chaise: no cloud sheet, the words sit among the drifting thoughts */
html body .cloud9{filter:none;margin:70px 0 40px;animation:none}
html body .cloud9::before,html body .cloud9::after,html body .cloud9-in::before,html body .cloud9-in::after{display:none}
html body .cloud9-in{background:none;animation:none;padding:0 6px}
html body #room-panels .panel[data-panel="chaise"] .onward{margin-top:50px}
/* "What would you add?" is its own room: framed in cream, like the room picture */
html body .lib-add{border:clamp(10px,1.3vw,18px) solid #f6f1e6;outline:1px solid rgba(138,90,43,.45);outline-offset:-1px;background:#15110d;padding:clamp(26px,4vw,56px);margin-top:clamp(56px,7vw,90px);box-shadow:0 22px 50px -26px rgba(0,0,0,.85)}
html body .lib-add .two{align-items:start!important}
/* chaise, final: no sheet at all; one white cloud floats over the dimmed room, thoughts drift around it */
html body #room-panels .panel[data-panel="chaise"]{background:none!important;filter:none!important;border:0!important;padding-left:clamp(22px,3vw,44px)!important;width:min(600px,100%)}
html body #room-panels .panel[data-panel="chaise"] .close{background:#fff;border-color:rgba(255,255,255,.6);color:#1d1813}
html body #room-panels .panel[data-panel="chaise"] > .hand{color:#f4efe6!important}
html body #room-panels .panel[data-panel="chaise"] .drift9 .dw{color:#efe7da}
html body #room-panels .panel[data-panel="chaise"] .cloud9{margin:118px 6px 70px 10px;filter:drop-shadow(0 20px 34px rgba(0,0,0,.45));animation:cloud-drift 8s ease-in-out infinite}
html body #room-panels .panel[data-panel="chaise"] .cloud9::before,html body #room-panels .panel[data-panel="chaise"] .cloud9::after,html body #room-panels .panel[data-panel="chaise"] .cloud9-in::before,html body #room-panels .panel[data-panel="chaise"] .cloud9-in::after{display:block}
html body #room-panels .panel[data-panel="chaise"] .cloud9-in{background:#fff;padding:30px clamp(26px,4vw,44px) 48px;animation:cloud-breathe 9s ease-in-out infinite}
html body #room-panels .panel[data-panel="chaise"] .onward{margin-top:40px;background:none;box-shadow:none}
html body #room-panels .panel[data-panel="chaise"] .onward .link.p{color:#f4efe6!important}
@media (prefers-reduced-motion:reduce){html body #room-panels .panel[data-panel="chaise"] .cloud9,html body #room-panels .panel[data-panel="chaise"] .cloud9-in{animation:none}}
/* chaise: a white cloud drawn like a child would draw it */
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid{margin:96px 0 96px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.4))}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid::before,html body #room-panels .panel[data-panel="chaise"] .cloud9.kid::after,html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .cloud9-in::before,html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .cloud9-in::after{display:none}
.cloud9.kid .kc{position:absolute;inset:-14% -6% -16% -6%;width:112%;height:130%;z-index:0;overflow:visible}
.cloud9.kid .kc-fill{fill:#fff}
.cloud9.kid .kc-line{fill:none;stroke:#2a241d;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.cloud9.kid .kc-2{stroke-width:1.4;opacity:.45}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .cloud9-in{background:none!important;position:relative;z-index:1;padding:8px clamp(30px,5vw,54px) 6px;animation:none}
.cloud9.kid{animation:cloud-drift 8s ease-in-out infinite}
.cloud9.kid .kc{animation:cloud-breathe 9s ease-in-out infinite;transform-origin:50% 50%}
/* the bubbles trail down toward the chaise, drawn the same way */
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .tb{background:#fff;border:2.5px solid #2a241d;z-index:0}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .tb1{width:34px;height:30px;left:4%;bottom:-78px;border-radius:52% 48% 50% 50%}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .tb2{width:21px;height:19px;left:-1%;bottom:-112px;border-radius:50% 55% 45% 50%}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .tb3{width:12px;height:12px;left:-4%;bottom:-136px}
html body #room-panels .panel[data-panel="chaise"] .onward{margin-top:30px}
@media (prefers-reduced-motion:reduce){.cloud9.kid,.cloud9.kid .kc{animation:none}}
html body #room-panels .panel[data-panel="chaise"] .close{z-index:5!important}
html body #room-panels .panel[data-panel="chaise"] > .hand{display:none}
.cloud9.kid .kc{inset:-34% -9% -26% -9%;width:118%;height:160%}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid{margin:150px 10px 120px}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .tb1{bottom:-104px}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .tb2{bottom:-138px}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid .tb3{bottom:-162px}
html body #room-panels .panel[data-panel="chaise"] .onward{margin-top:60px}
.cap.tw9 .tc.yo{color:var(--amber)!important}
.cloud9.kid .kc{inset:-44% -9% -26% -9%;height:170%}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid{margin-top:180px}
html body #room-panels .panel[data-panel="chaise"] .onward{background:rgba(22,16,12,.82);box-shadow:0 0 28px 22px rgba(22,16,12,.82);border-radius:30px}
/* "What would you add?" block: each text one step larger */
html body .lib-add .cap.tw9{font-size:clamp(1rem,1.35vw,1.2rem)!important}
html body .lib-add h2.ww9{font-size:clamp(2.6rem,4.1vw,3.65rem)!important}
html body .lib-add .two .dim{font-size:clamp(1.12rem,1.45vw,1.32rem)!important;line-height:1.65}
/* the chaise cloud floats: a slow bob, a little sideways sway and tilt */
@keyframes cloud-float{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(7px,-12px) rotate(.8deg)}50%{transform:translate(0,-18px) rotate(0)}75%{transform:translate(-7px,-9px) rotate(-.8deg)}100%{transform:translate(0,0) rotate(0)}}
html body #room-panels .panel[data-panel="chaise"] .cloud9.kid{animation:cloud-float 11s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){html body #room-panels .panel[data-panel="chaise"] .cloud9.kid{animation:none}}
/* ===== the room's panels: each opens as a white, child-drawn shape floating over the dimmed room ===== */
.kc-defs{position:absolute;width:0;height:0;overflow:hidden}
html body #room-panels .panel.kidp{background:none!important;filter:none!important;border:0!important;box-shadow:none!important;padding:26px clamp(22px,3vw,44px) 70px!important;width:min(620px,100%)}
html body #room-panels .panel.kidp > *:not(.drift9){position:relative;z-index:1}
html body #room-panels .panel.kidp .close{position:sticky!important;z-index:5!important;background:#fff;border:1px solid rgba(255,255,255,.6);border-radius:999px;color:#1d1813}
html body #room-panels .panel.kidp .drift9 .dw{color:#efe7da}
html body #room-panels .panel.kidp .onward{position:relative;justify-content:center;background:rgba(22,16,12,.82);box-shadow:0 0 28px 22px rgba(22,16,12,.82);border-radius:30px;margin-top:40px}
html body #room-panels .panel.kidp .onward .link{color:#f4efe6!important}
.kshape{position:relative;isolation:isolate;margin:84px 8px 56px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.42))}
.kshape .kc{position:absolute;z-index:0;overflow:visible;inset:-10% -7% -10% -7%;width:114%;height:120%}
.kc .kc-fill{fill:#fff}
.kc .kc-line{fill:none;stroke:#2a241d;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.kc .kc-2{stroke-width:1.4;opacity:.45}
.kc .kc-faint{stroke-width:1.6;opacity:.38}
.kc .kc-ray{stroke-width:3}
.kc .kc-rule{fill:none;stroke:#9fb6d6;stroke-width:1;opacity:.75;vector-effect:non-scaling-stroke}
.kc .kc-margin{fill:none;stroke:#d98b8b;stroke-width:1.4;opacity:.8;vector-effect:non-scaling-stroke}
.kc .kc-knob{fill:#2a241d}
.ks-in{position:relative;z-index:1;text-align:center}
html body #room-panels .panel.kidp .ks-in h2{color:#1d1813!important;font-size:clamp(1.75rem,2.7vw,2.3rem);line-height:1.15;margin:0 0 14px}
html body #room-panels .panel.kidp .ks-in h2 em{color:#6f6458!important}
html body #room-panels .panel.kidp .ks-in p{color:#4a4035!important;margin:0 0 10px;font-size:1.05rem;line-height:1.5}
html body #room-panels .panel.kidp .ks-in b{color:#1d1813;font-weight:500}
html body #room-panels .panel.kidp .ks-hand{font-family:var(--hand);font-size:clamp(1.5rem,2.1vw,1.85rem);color:#8c8378!important;line-height:1;transform:rotate(-2deg);margin:0 0 8px}
html body #room-panels .panel.kidp .ks-steps{font-family:var(--hand);font-size:1.4rem!important;color:#6f6458!important;line-height:1.2!important}
html body #room-panels .panel.kidp .ks-small{font-size:.95rem!important;color:#7b6e5c!important}
html body #room-panels .panel.kidp .sel{color:#1d1813}
/* lamp: a round glow with rays, swaying a little as if it hangs */
.ks-lamp{margin-top:110px;margin-bottom:84px}
.ks-lamp .kc{inset:-22% -11% -22% -11%;width:122%;height:144%}
.ks-lamp .ks-in{padding:0 9%}
/* two chairs: a speech bubble */
.ks-chairs .kc{inset:-16% -7% -40% -7%;width:114%;height:156%}
.ks-chairs .ks-in{padding:0 6%}
html body #room-panels .panel.kidp .ks-tagk{font-family:var(--hand);font-size:1.7rem;color:#f4efe6!important;text-align:center;margin:70px 0 10px}
html body #room-panels .panel.kidp .ks-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 8px;margin:0 0 18px}
html body #room-panels .panel.kidp .ks-tags a{background:#fff!important;color:#1d1813!important;border:2px solid #2a241d!important;border-radius:14px 18px 12px 16px!important;padding:6px 12px!important;font-size:.95rem!important;transform:rotate(-1.4deg);transition:transform .25s}
html body #room-panels .panel.kidp .ks-tags a:nth-child(2n){transform:rotate(1.2deg);border-radius:18px 12px 16px 14px!important}
html body #room-panels .panel.kidp .ks-tags a:nth-child(3n){transform:rotate(-.4deg)}
html body #room-panels .panel.kidp .ks-tags a:hover{transform:rotate(0) translateY(-3px) scale(1.04)}
html body #room-panels .panel.kidp .ks-note{color:#d9cdb8!important;text-align:center;font-size:.98rem}
/* books: an open book; words on the left page, people on the right */
.ks-books .kc{inset:-16% -5% -14% -5%;width:110%;height:130%}
.ks-books .ks-in{display:grid;grid-template-columns:1fr 1fr;gap:9%;text-align:left;padding:0 3%}
html body #room-panels .panel.kidp .ks-books h2{font-size:clamp(1.45rem,2.2vw,1.85rem)}
html body #room-panels .panel.kidp .ks-books .people{display:grid;grid-template-columns:1fr;gap:10px;margin:6px 0 0}
html body #room-panels .panel.kidp .ks-books .person{display:flex;align-items:center;gap:10px;padding:0;background:none;border:0;box-shadow:none}
html body #room-panels .panel.kidp .ks-books .person img{width:52px;height:52px;object-fit:cover;border-radius:50%;margin:0;border:2px solid #2a241d;flex:0 0 auto}
html body #room-panels .panel.kidp .ks-books .person h3{font-size:.95rem;color:#1d1813!important;margin:0;line-height:1.2}
html body #room-panels .panel.kidp .ks-books .person p{font-size:.8rem!important;margin:0!important;color:#7b6e5c!important}
/* desk: a page torn from a notebook, ruled lines and a red margin */
.ks-desk .kc{inset:-12% -6% -10% -6%;width:112%;height:122%}
.ks-desk .ks-in{text-align:left;padding:0 3% 0 15%}
html body #room-panels .panel.kidp .ks-desk .ks-list{list-style:none;margin:12px 0 0;padding:0}
html body #room-panels .panel.kidp .ks-desk .ks-list li{color:#4a4035;margin:0 0 8px;line-height:1.4}
html body #room-panels .panel.kidp .ks-desk .ks-list li b{display:block}
html body #room-panels .panel.kidp .ks-desk .ks-list li i{font-family:var(--hand);font-style:normal;font-size:1.3rem;color:#b5473a;margin-left:4px}
/* window: an arched window on a sill, the view inside */
.ks-window{margin-top:120px}
.ks-window .kc{inset:-24% -9% -10% -9%;width:118%;height:134%}
.ks-window .ks-in{padding:0 9%}
html body #room-panels .panel.kidp .ks-window .print{margin:6px 0 14px;border:2px solid #2a241d;border-radius:46% 46% 6px 6px / 30% 30% 6px 6px;overflow:hidden;box-shadow:none;max-width:100%}
html body #room-panels .panel.kidp .ks-window .print img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
/* door: a door with a round knob */
.ks-door{margin-top:110px}
.ks-door .kc{inset:-18% -9% -6% -9%;width:118%;height:124%}
.ks-door .ks-in{padding:0 21% 0 19%}
html body #room-panels .panel.kidp .ks-door .onward{flex-direction:column}
/* each shape floats in its own way */
@keyframes ks-swing{0%,100%{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}
@keyframes ks-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes ks-tilt{0%,100%{transform:translateY(0) rotate(-.9deg)}50%{transform:translateY(-8px) rotate(.9deg)}}
@keyframes ks-paper{0%{transform:translate(0,0) rotate(-1.2deg)}33%{transform:translate(6px,-8px) rotate(.4deg)}66%{transform:translate(-4px,-4px) rotate(-.6deg)}100%{transform:translate(0,0) rotate(-1.2deg)}}
@keyframes ks-creak{0%,100%{transform:rotate(0)}50%{transform:rotate(-.9deg)}}
.ks-lamp{transform-origin:50% -60%;animation:ks-swing 7s ease-in-out infinite}
.ks-chairs{animation:ks-bob 6.5s ease-in-out infinite}
.ks-books{animation:ks-tilt 9s ease-in-out infinite}
.ks-desk{animation:ks-paper 12s ease-in-out infinite}
.ks-window{animation:ks-bob 10s ease-in-out infinite}
.ks-door{transform-origin:15% 50%;animation:ks-creak 8s ease-in-out infinite}
@media (max-width:560px){.ks-books .ks-in{grid-template-columns:1fr;gap:18px}.ks-door .ks-in{padding:0 18%}}
@media (prefers-reduced-motion:reduce){.kshape{animation:none!important}}
/* books: more room on the pages; people as small portraits with name and role */
.ks-books{margin-top:96px}
.ks-books .kc{inset:-18% -4% -18% -4%;width:108%;height:136%}
.ks-books .ks-in{padding:0 4% 0 5%;gap:12%}
html body #room-panels .panel.kidp .ks-books .person{display:grid;grid-template-columns:52px 1fr;column-gap:10px;align-items:center}
html body #room-panels .panel.kidp .ks-books .person img{grid-row:1 / span 2}
html body #room-panels .panel.kidp .ks-books .person h3{align-self:end}
html body #room-panels .panel.kidp .ks-books .person p{align-self:start;font-family:var(--hand);font-size:1.15rem!important}
/* desk: keep words inside the page */
.ks-desk .ks-in{padding:0 7% 0 15%}
/* door: taller, and the text stays clear of the knob */
.ks-door .ks-in{padding:14px 25% 22px 19%}
.ks-books .ks-in{padding-top:22px;padding-bottom:10px}
.ks-door .ks-in{padding:46px 25% 70px 19%}
/* the handwritten lines in the room's shapes, larger */
html body #room-panels .panel.kidp .ks-hand,html body #room-panels .panel[data-panel="chaise"] .c9-hand{font-size:clamp(2rem,2.8vw,2.5rem)!important;margin-bottom:10px}
html body #room-panels .panel.kidp .ks-books .ks-hand{font-size:clamp(1.7rem,2.3vw,2.05rem)!important}
/* two chairs: the topics rise from the floor like little bubbles (not links) */
html body #room-panels .panel.kidp .drift9.bubbles .dw{font-family:var(--display)!important;font-size:1.05rem!important;color:#1d1813!important;background:#fff;border:2px solid #2a241d;border-radius:20px 24px 18px 22px;padding:6px 15px;box-shadow:0 8px 18px -10px rgba(0,0,0,.6);animation-name:bub-rise}
@keyframes bub-rise{
  0%{opacity:0;transform:translate(0,0) rotate(var(--r0,-3deg)) scale(.85)}
  10%{opacity:1;transform:translate(0,-6vh) rotate(var(--r0,-3deg)) scale(1)}
  35%{transform:translate(var(--sx,14px),-32vh) rotate(var(--r1,3deg))}
  65%{transform:translate(calc(var(--sx,14px) * -.7),-62vh) rotate(var(--r0,-3deg))}
  85%{opacity:1}
  100%{opacity:0;transform:translate(0,-95vh) rotate(var(--r1,3deg)) scale(1.04)}}
html body #room-panels .panel.kidp[data-panel="chairs"] .ks-note{margin-top:80px}
/* topic bubbles mixed in with the drifting sentences */
html body #room-panels .panel.kidp .drift9 .dw.bub{font-family:var(--display)!important;font-size:1.05rem!important;color:#1d1813!important;background:#fff;border:2px solid #2a241d;border-radius:20px 24px 18px 22px;padding:6px 15px;box-shadow:0 8px 18px -10px rgba(0,0,0,.6);animation-name:bub-rise}
/* books: a proper open book; cloth cover behind, page edges, gutter shadow, a ribbon */
.kc .kb-cover{fill:#7a3326}
.kc .kb-stack{fill:none;stroke:#2a241d;stroke-width:1.2;opacity:.55;vector-effect:non-scaling-stroke}
.kc .kb-ribbon{fill:#c9962e}
.ks-books{margin:100px 0 90px}
.ks-books .kc{inset:-15% -8% -26% -8%;width:116%;height:141%}
.ks-books .ks-in{padding:6px 2% 4px 3%;gap:13%}
/* desk: the list is handwritten in ink, by a pencil */
html body #room-panels .panel.kidp .ks-desk .ks-list{position:relative}
html body #room-panels .panel.kidp .ks-desk .ks-list li{font-family:var(--hand);font-size:1.45rem;line-height:1.15;color:#27407a;margin:0 0 10px}
html body #room-panels .panel.kidp .ks-desk .ks-list li b{font-weight:400;font-size:1.75rem;color:#1b2d5c}
html body #room-panels .panel.kidp .ks-desk .ks-list li i{font-size:1.45rem}
.ks-list.pen-js .wc{visibility:hidden}
.ks-list.pen-js .wc.on{visibility:visible}
.ks-list .kpen{position:absolute;left:0;top:0;width:44px;height:44px;margin:-42px 0 0 -2px;pointer-events:none;transition:transform .07s linear,opacity .8s ease;transform-origin:2px 42px;z-index:3;filter:drop-shadow(2px 4px 3px rgba(0,0,0,.25))}
.ks-list .kpen svg{width:100%;height:100%;display:block}
.ks-list .kpen.done{opacity:0}
/* books: smaller handwriting so it fits the pages; room at the bottom of the right page */
html body #room-panels .panel.kidp .ks-books .ks-hand{font-size:clamp(1.45rem,1.9vw,1.7rem)!important}
.ks-books .ks-in{padding-bottom:22px}
html body #room-panels .panel.kidp .ks-hand,html body #room-panels .panel[data-panel="chaise"] .c9-hand{font-size:clamp(2.2rem,3vw,2.75rem)!important}
html body #room-panels .panel.kidp .ks-books .ks-hand{font-size:clamp(1.6rem,2.1vw,1.9rem)!important}
/* door: a tall door with two panels, a letter slot (a letter half posted) and a knob */
html body #room-panels .panel.kidp .ks-door{width:min(450px,92%);aspect-ratio:300/520;margin:70px auto 46px;transform-origin:4% 50%}
.ks-door .kc{inset:0;width:100%;height:100%}
html body #room-panels .panel.kidp .ks-door .ks-in{position:absolute;left:15%;right:15%;top:9.5%;height:47%;padding:0;display:flex;flex-direction:column;justify-content:center}
html body #room-panels .panel.kidp .ks-door .ks-in h2{font-size:clamp(1.6rem,2.3vw,2rem);margin-bottom:10px}
html body #room-panels .panel.kidp .ks-door .ks-in p{font-size:.98rem;margin-bottom:8px}
html body #room-panels .panel.kidp .ks-door .ks-small{font-size:.9rem!important}
.kc .kd-env{fill:#fbf6ec}
.kc .kd-slot{fill:#2a241d}
/* lamp: a lampshade hanging from the ceiling on its cord, light spilling beneath */
.ks-lamp{margin:150px 0 120px;transform-origin:50% -120%}
.ks-lamp .kc{inset:-26% -14% -18% -14%;width:128%;height:144%}
.kc .kl-pleat{fill:none;stroke:#2a241d;stroke-width:1;opacity:.18;vector-effect:non-scaling-stroke}
.ks-lamp::after{content:"";position:absolute;left:-20%;right:-20%;bottom:-150px;height:240px;z-index:-1;background:radial-gradient(ellipse 50% 60% at 50% 0,rgba(255,214,140,.5),rgba(255,214,140,.12) 55%,transparent 75%);pointer-events:none}
html body #room-panels .panel.kidp .ks-lamp .ks-in{padding:0 4%}
/* handwriting in the room shapes: Reenie Beanie runs small, so set it much larger */
html body #room-panels .panel.kidp .ks-hand,html body #room-panels .panel[data-panel="chaise"] .c9-hand{font-size:clamp(2.9rem,4vw,3.6rem)!important;line-height:.95!important}
html body #room-panels .panel.kidp .ks-books .ks-hand{font-size:clamp(2.2rem,2.9vw,2.6rem)!important}
html body #room-panels .panel.kidp .ks-steps{font-size:1.95rem!important;line-height:1.05!important}
html body #room-panels .panel.kidp .ks-desk .ks-list li{font-size:1.95rem;line-height:1}
html body #room-panels .panel.kidp .ks-desk .ks-list li b{font-size:2.3rem}
html body #room-panels .panel.kidp .ks-desk .ks-list li i{font-size:1.95rem}
html body #room-panels .panel.kidp .ks-books .person p{font-size:1.6rem!important}
html body #room-panels .panel.kidp .drift9 .dw:not(.bub){font-size:calc(var(--fs,1.6rem) * 1.35)}
/* window: the room's window, with the four seasons passing behind the glass */
.win-wrap{position:relative;margin:76px auto 0;width:92%;animation:ks-bob 10s ease-in-out infinite}
.win-frame{background:#2b1d16;padding:14px;border:2px solid #c8a46a;box-shadow:0 22px 40px -18px rgba(0,0,0,.8),inset 0 0 0 4px #3a2a1f}
.season-win{display:block;width:100%;height:auto}
.win-sill{height:16px;margin:0 -6%;background:#3a2a1f;border-top:2px solid #c8a46a;box-shadow:0 10px 18px -8px rgba(0,0,0,.7)}
.season-win .sea{opacity:0;animation:24s linear infinite}
.season-win .sea-w,.season-win .pt-w{animation-name:sea-w}
.season-win .sea-sp,.season-win .pt-sp{animation-name:sea-sp}
.season-win .sea-su{animation-name:sea-su}
.season-win .sea-au,.season-win .pt-au{animation-name:sea-au}
.season-win .pt{opacity:0;animation-duration:24s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes sea-w{0%,20%{opacity:1}27%,93%{opacity:0}100%{opacity:1}}
@keyframes sea-sp{0%,20%{opacity:0}27%,45%{opacity:1}52%,100%{opacity:0}}
@keyframes sea-su{0%,45%{opacity:0}52%,70%{opacity:1}77%,100%{opacity:0}}
@keyframes sea-au{0%,70%{opacity:0}77%,93%{opacity:1}100%{opacity:0}}
.season-win .fl{transform-box:fill-box;transform-origin:center;animation:fl-fall var(--d,7s) linear var(--dl,0s) infinite}
.season-win .pet,.season-win .leaf{animation-name:fl-flutter}
@keyframes fl-fall{0%{transform:translate(0,0)}50%{transform:translate(8px,160px)}100%{transform:translate(-4px,320px)}}
@keyframes fl-flutter{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(14px,80px) rotate(90deg)}50%{transform:translate(-6px,160px) rotate(180deg)}75%{transform:translate(12px,240px) rotate(270deg)}100%{transform:translate(0,320px) rotate(360deg)}}
.ks-window{margin-top:26px!important;animation:none!important}
.ks-window .kc{inset:-8% -5% -10% -5%!important;width:110%!important;height:118%!important}
@media (prefers-reduced-motion:reduce){.season-win .sea,.season-win .pt,.season-win .fl,.win-wrap{animation:none}.season-win .sea-su{opacity:1}}
/* lamp shade sized to the panel */
.ks-lamp{margin:140px 4% 110px}
.ks-lamp .kc{inset:-30% -12% -16% -12%!important;width:124%!important;height:146%!important}
html body #room-panels .panel.kidp .ks-lamp .ks-in{padding:0 7%}
/* books: the right page is a handwritten inscription, like the flyleaf of a gifted book */
html body #room-panels .panel.kidp .ks-books .ks-inscr{display:flex;flex-direction:column;justify-content:center;padding:4% 0 0 4%;transform:rotate(-2deg)}
html body #room-panels .panel.kidp .ks-books .ks-ins{font-family:var(--hand);font-size:clamp(1.9rem,2.5vw,2.25rem)!important;line-height:1.05!important;color:#27407a!important;margin:0 0 16px!important}
html body #room-panels .panel.kidp .ks-books .ks-sign{text-align:right;margin-top:6px!important}
/* the lamp hangs lower, on a black cord from the ceiling (a thin light edge so it shows on the dark) */
.kc .kl-cord{fill:none;stroke:#0d0a08;stroke-width:3;vector-effect:non-scaling-stroke}
.kc .kl-cord-hi{fill:none;stroke:rgba(244,239,230,.55);stroke-width:5.5;vector-effect:non-scaling-stroke}
.ks-lamp{margin-top:230px!important}
html body #room-panels .panel.kidp .ks-lamp .ks-in{padding:18px 10% 6px}
html body #room-panels .panel.kidp .ks-lamp .ks-in h2{font-size:clamp(2rem,3vw,2.5rem)}
html body #room-panels .panel.kidp .ks-lamp .ks-in p{font-size:1.15rem}
/* window: no white sheet under it; the words sit straight on the dark room */
.ks-window .kc{display:none!important}
.ks-window{filter:none!important;margin-top:34px!important}
html body #room-panels .panel.kidp .ks-window .ks-hand{color:#efe7da!important}
html body #room-panels .panel.kidp .ks-window .ks-in h2{color:#f6f1e6!important}
html body #room-panels .panel.kidp .ks-window .ks-in h2 em{color:#e6bd74!important}
html body #room-panels .panel.kidp .ks-window .ks-in p{color:#d9cdb8!important}
html body #room-panels .panel.kidp .ks-window .ks-small{color:#b8ab95!important}
/* the squiggle game: a big framed sheet to draw on */
html body #room-panels .panel.kidp .sq-hand{font-family:var(--hand);font-size:clamp(2.9rem,4vw,3.6rem);line-height:1;color:#efe7da;text-align:center;margin:60px 0 14px;transform:rotate(-2deg)}
.sq-frame{position:relative;background:#f6f1e6;border:3px solid #c8a46a;outline:12px solid #2b1d16;outline-offset:0;box-shadow:0 0 0 14px #c8a46a,0 26px 50px -20px rgba(0,0,0,.85);margin:26px 14px 30px;animation:ks-bob 11s ease-in-out infinite}
.sq-canvas{display:block;width:100%;height:auto;aspect-ratio:1000/760;touch-action:none;cursor:crosshair}
.sq-tip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;font-family:var(--hand);font-size:2.2rem;color:#a59a8c;pointer-events:none;transition:opacity .5s}
.sq-tip.gone{opacity:0}
html body #room-panels .panel.kidp .sq-line{color:#d9cdb8!important;text-align:center;font-size:1.08rem;line-height:1.55;margin:30px 6% 0}
html body #room-panels .panel.kidp[data-panel="squiggle"] .onward{margin-top:22px}
@media (prefers-reduced-motion:reduce){.sq-frame{animation:none}}
html body #room-panels .panel.kidp .sq-again{display:block;margin:18px auto 0;background:none;border:0;border-bottom:1px solid rgba(239,231,218,.4);font-family:var(--hand);font-size:2rem;color:#efe7da;cursor:pointer;padding:0 4px}
html body #room-panels .panel.kidp .sq-again:hover{color:#e6bd74;border-color:#e6bd74}
/* books: the names float over the book, turning black while they cross the white pages */
html body #room-panels .panel.kidp[data-panel="books"] .drift9{z-index:3}
html body #room-panels .panel.kidp[data-panel="books"] .drift9 .dw{transition:color .45s ease}
html body #room-panels .panel.kidp[data-panel="books"] .drift9 .dw.onpage{color:#1d1813}
/* window: seasons turn faster (4 seconds each), and the window sits mid-panel now the words are gone */
.season-win .sea,.season-win .pt{animation-duration:16s!important}
.win-wrap{margin-top:170px}
/* chaise: an empty cloud; the drifting thoughts pass in front of it and turn black where they touch it */
html body #room-panels .panel[data-panel="chaise"] .cloud9-in{min-height:260px}
html body #room-panels .panel.kidp[data-panel="chaise"] .drift9{z-index:3}
html body #room-panels .panel.kidp[data-panel="chaise"] .drift9 .dw{transition:color .45s ease}
html body #room-panels .panel.kidp[data-panel="chaise"] .drift9 .dw.onpage{color:#1d1813}
/* two chairs: just the speech bubble and its handwritten line; sentences turn black where they touch it */
html body #room-panels .panel.kidp .ks-chairs .ks-in{padding:26px 6% 30px}
html body #room-panels .panel.kidp .ks-chairs .ks-hand{margin:0}
.ks-chairs{margin-top:150px}
html body #room-panels .panel.kidp[data-panel="chairs"] .drift9{z-index:3}
html body #room-panels .panel.kidp[data-panel="chairs"] .drift9 .dw{transition:color .45s ease}
html body #room-panels .panel.kidp[data-panel="chairs"] .drift9 .dw.onpage{color:#1d1813}
/* every white shape: the drifting words pass in front of it, black while they touch it */
html body #room-panels .panel.kidp .drift9{z-index:3}
html body #room-panels .panel.kidp .drift9 .dw{transition:color .45s ease}
html body #room-panels .panel.kidp .drift9 .dw.onpage{color:#1d1813}
html body #room-panels .panel.kidp .close{z-index:6!important}
/* the topics are round white bubbles */
html body #room-panels .panel.kidp .drift9 .dw.bub{white-space:normal;display:flex;align-items:center;justify-content:center;text-align:center;width:var(--bs,124px);height:var(--bs,124px);padding:14px;border-radius:50%!important;line-height:1.15;font-size:1rem!important;background:radial-gradient(circle at 32% 28%,#fff 0 22%,#fbfaf7 45%,#ecebe6 100%);border:2px solid #2a241d;box-shadow:0 10px 22px -10px rgba(0,0,0,.65)}
html body #room-panels .panel.kidp .drift9 .dw.bub::after{content:"";position:absolute;top:16%;left:22%;width:18%;height:11%;border-radius:50%;background:#fff;transform:rotate(-30deg);box-shadow:0 0 0 1px rgba(42,36,29,.08)}
html body #room-panels .panel.kidp .ks-books .ks-in{min-height:300px}
/* window: winter passes quickly, then spring, summer, autumn */
.season-win .sea,.season-win .pt{animation-duration:14s!important}
.season-win .sea-w,.season-win .pt-w{animation-name:sea-w2!important}
.season-win .sea-sp,.season-win .pt-sp{animation-name:sea-sp2!important}
.season-win .sea-su{animation-name:sea-su2!important}
.season-win .sea-au,.season-win .pt-au{animation-name:sea-au2!important}
@keyframes sea-w2{0%,13%{opacity:1}19%,95%{opacity:0}100%{opacity:1}}
@keyframes sea-sp2{0%,13%{opacity:0}19%,40%{opacity:1}46%,100%{opacity:0}}
@keyframes sea-su2{0%,40%{opacity:0}46%,68%{opacity:1}74%,100%{opacity:0}}
@keyframes sea-au2{0%,68%{opacity:0}74%,94%{opacity:1}100%{opacity:0}}
/* visitors' shelf: fresher, flat modern colours; touching a spine shows the real cover */
html body .lib-shelf .spine{background:var(--c)!important;border:0!important;border-radius:4px 4px 0 0;box-shadow:inset -8px 0 0 rgba(0,0,0,.12),inset 2px 0 0 rgba(255,255,255,.18)!important;filter:none!important}
html body .lib-shelf .spine::before{background:rgba(255,255,255,.85)!important;height:3px!important;top:20px!important;box-shadow:0 7px 0 rgba(255,255,255,.45)!important}
html body .lib-shelf .spine .ttl{font-family:var(--sans)!important;font-weight:600!important;font-size:.72rem!important;letter-spacing:.2em!important;color:#fff!important}
html body .lib-shelf .spine:hover,html body .lib-shelf .spine[aria-pressed="true"]{transform:translateY(-12px)}
#lib-card.has-cover{display:grid;grid-template-columns:auto 1fr;gap:22px 28px;align-items:center}
#lib-card .sc-cover{width:150px;height:auto;border-radius:3px;box-shadow:0 18px 34px -14px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08);grid-row:span 2}
#lib-card.pop .sc-cover{animation:cover-in .7s cubic-bezier(.2,.8,.2,1)}
@keyframes cover-in{from{opacity:0;transform:translateY(16px) rotate(-4deg) scale(.92)}to{opacity:1;transform:none}}
@media (max-width:560px){#lib-card .sc-cover{width:110px}}
/* eighteen topics: six across on wide screens, three on medium, two on phones */
html body .topic-links{grid-template-columns:repeat(6,minmax(0,1fr))!important;max-width:1180px!important}
@media (max-width:1100px){html body .topic-links{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media (max-width:620px){html body .topic-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* "Come in, take your time" arrives right as the handwriting finishes, and quickly */
html body section.values9.room9-ban.js-wait .wrap > :nth-child(1){transition:opacity .7s ease,transform .7s ease}
/* room banner: a line telling people to click a corner, before "There's no wrong place to begin." */
html body section.values9.room9-ban .room9-how{margin-bottom:2px}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(3){transition-delay:10.6s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(4){transition-delay:11.8s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(5){transition-delay:12.3s}
/* the headline wave comes sooner and moves faster; what follows is brought forward to match */
html body section.values9.room9-ban h2 .wv{transition:opacity .9s ease,transform 1.3s cubic-bezier(.3,1.5,.5,1)!important;transition-delay:calc(.9s + var(--i) * 70ms)!important}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(3){transition-delay:6s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(4){transition-delay:7s}
html body section.values9.room9-ban.js-wait.shown .wrap > :nth-child(5){transition-delay:7.5s}
/* the two lines under the headline: darker and a little larger */
html body section.values9.room9-ban .v9-sub{color:#2a211a!important;font-size:clamp(1.15rem,1.5vw,1.32rem)!important;opacity:1}
html body section.values9.room9-ban .room9-how{font-weight:500}
/* topic bubbles: see-through, like soap bubbles, with white lettering */
html body #room-panels .panel.kidp .drift9 .dw.bub{background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.06) 0 52%,rgba(255,255,255,.16) 72%,rgba(255,255,255,.42) 100%),conic-gradient(from 200deg,rgba(180,220,255,.18),rgba(255,190,230,.16),rgba(255,240,170,.14),rgba(170,255,220,.16),rgba(180,220,255,.18))!important;border:1.5px solid rgba(255,255,255,.65)!important;color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.55);box-shadow:inset 0 0 18px rgba(255,255,255,.18),0 8px 22px -14px rgba(0,0,0,.6)!important}
html body #room-panels .panel.kidp .drift9 .dw.bub::after{background:rgba(255,255,255,.85)!important;box-shadow:none!important}
/* Our people: the glasses photo opens the page the same way the therapy page's film does */
html body section.ph.ph-split .phs-pic img.phs-blur{position:absolute!important;top:var(--nav-h)!important;left:-60px!important;right:-60px!important;bottom:-60px!important;inset:auto;width:calc(100% + 120px)!important;height:calc(100% - var(--nav-h) + 60px)!important;object-fit:cover;filter:blur(28px) brightness(.45) saturate(.9);transform:scale(1.05);z-index:0}
html body section.ph.ph-split .phs-pic img.phs-main{position:relative;z-index:1;display:block;margin:0 auto;width:var(--fw)!important;height:auto!important;max-width:none;aspect-ratio:560/308;object-fit:cover;object-position:50% 58%;box-shadow:0 0 60px rgba(0,0,0,.55)}
html body section.ph.ph-people-split .panel .cap{margin-bottom:10px}
@media (max-width:860px){html body section.ph.ph-split .phs-pic img.phs-main{width:100%!important}}
/* Our people top: same darkness as the therapy page behind the writing */
html body section.ph.ph-people-split .phs-pic img.phs-blur{filter:blur(28px) brightness(.32) saturate(.85)!important}
html body section.ph.ph-people-split .phs-band{background:linear-gradient(180deg,rgba(11,9,8,.45),rgba(11,9,8,.7))!important}
/* the gold handwritten line at the top of both pages: larger (the handwriting font runs small) */
html body section.ph.ph-split .for{font-size:clamp(1.95rem,2.5vw,2.35rem)!important;line-height:1!important;margin:2px 0 8px!important}
html body section.ph.ph-people-split .lede{font-size:clamp(1.12rem,1.35vw,1.26rem)!important}
/* the shelf: Mal's book sits second, pulled out a little, as if someone just reached for it */
html body #shelf-row .spine.pulled{transform:translate(-6px,-26px) rotate(-3deg);transform-origin:50% 100%;z-index:2;box-shadow:inset -7px 0 12px -6px rgba(0,0,0,.4),inset 3px 0 0 rgba(255,255,255,.12),14px 18px 22px -10px rgba(0,0,0,.75)!important}
html body #shelf-row .spine.pulled:hover,html body #shelf-row .spine.pulled[aria-pressed="true"]{transform:translate(-8px,-34px) rotate(-4deg)}
/* the pop-up with Mal's book */
.mal-dlg{max-width:min(980px,94vw);width:100%;max-height:90vh;overflow:auto;padding:clamp(26px,4vw,48px);border:1px solid rgba(201,164,106,.5);background:#1a1512;color:var(--cream-2,#d9ccb4);box-shadow:0 40px 90px -30px rgba(0,0,0,.9)}
.mal-dlg::backdrop{background:rgba(10,8,6,.72);backdrop-filter:blur(3px)}
.mal-dlg[open]{animation:mal-in .45s cubic-bezier(.2,.8,.2,1)}
@keyframes mal-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.mal-dlg .mal-close{position:sticky;top:0;float:right;background:#fff;color:#1d1813;border:0;border-radius:999px;padding:8px 16px;font-family:var(--display);font-size:1rem;cursor:pointer;z-index:2}
.mal-dlg .malbook.in-letter{grid-template-columns:230px 1fr;margin:10px 0 0;border:0;padding:0}
.mal-dlg .malbook .cover{cursor:pointer}
@media (max-width:700px){.mal-dlg .malbook.in-letter{grid-template-columns:1fr}.mal-dlg .malbook .cover{max-width:200px}}
/* main shelf card: Mal's book shows its real cover and an invitation to read more */
#shelf-card.has-cover{display:grid;grid-template-columns:auto 1fr 1.3fr;gap:22px 32px;align-items:center;max-width:980px}
#shelf-card .sc-cover{width:140px;height:auto;border-radius:3px;box-shadow:0 18px 34px -14px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08)}
#shelf-card.pop .sc-cover{animation:cover-in .7s cubic-bezier(.2,.8,.2,1)}
#shelf-card .sc-more{display:inline-block;margin-top:16px;background:none;border:0;border-bottom:1px solid rgba(226,182,115,.55);padding:0 0 2px;font-family:var(--hand);font-size:1.75rem;line-height:1;color:var(--amber);cursor:pointer}
#shelf-card .sc-more:hover{color:#f0cf91;border-color:#f0cf91}
@media (max-width:860px){#shelf-card.has-cover{grid-template-columns:auto 1fr}#shelf-card.has-cover .sc-r{grid-column:1 / -1}}
/* Keren's bio photo: the window portrait, framed around her face */
html body .bio .arch img.keren-win{object-position:50% 22%}
/* Mal's cover pops up larger when his spine is touched */
#shelf-card .sc-cover{width:clamp(200px,20vw,260px)!important;transform-origin:50% 100%}
#shelf-card.pop .sc-cover{animation:cover-pop .8s cubic-bezier(.2,1.3,.4,1)!important}
@keyframes cover-pop{0%{opacity:0;transform:translateY(40px) rotate(-6deg) scale(.6)}60%{opacity:1;transform:translateY(-8px) rotate(1deg) scale(1.06)}100%{transform:none}}
.mal-dlg .mb-bio{font-size:.98rem;color:#bcae96;border-left:2px solid rgba(201,164,106,.45);padding-left:14px;margin:0 0 16px}
/* Mal's pop-up on cream, with dark ink, for easy reading */
html body .mal-dlg{background:#f6f1e6!important;color:#2a211a!important;border:1px solid rgba(138,90,43,.45)!important}
html body .mal-dlg *{text-shadow:none!important}
html body .mal-dlg p,html body .mal-dlg .mb-praise{color:#3b3128!important;font-size:1.06rem;line-height:1.65}
html body .mal-dlg .cap{color:#8a5a2b!important}
html body .mal-dlg h3,html body .mal-dlg h3 em{color:#1d1813!important}
html body .mal-dlg .mb-quote{color:#1d1813!important;border-left-color:#c9962e!important}
html body .mal-dlg .mb-quote span{color:#8a5a2b!important}
html body .mal-dlg .mb-bio{color:#4a4035!important;border-left-color:rgba(138,90,43,.45)!important}
html body .mal-dlg .mal-close{background:#1d1813!important;color:#f6f1e6!important}
/* Mal's bio sits in the column under the cover */
.mal-dlg .mb-left{display:flex;flex-direction:column;gap:22px;min-width:0}
html body .mal-dlg .mb-left .mb-bio{border-left:0!important;padding-left:0;margin:0;font-size:.95rem!important;line-height:1.6!important}
.mal-dlg .malbook.in-letter{grid-template-columns:300px 1fr!important}
@media (max-width:700px){.mal-dlg .malbook.in-letter{grid-template-columns:1fr!important}}
/* Mal pop-up: title, closing-chapter quote and the main description in bold */
html body .mal-dlg .mb-text h3,html body .mal-dlg .mb-text h3 em{font-weight:600!important}
html body .mal-dlg .mb-quote:not(.mb-music){font-weight:600!important}
html body .mal-dlg .mb-quote:not(.mb-music) span{font-weight:600}
html body .mal-dlg p.mb-main{font-weight:600!important;color:#2a211a!important}
/* the music quote: bold, framed in gold */
html body .mal-dlg .mb-quote.mb-music{font-weight:600!important;color:#1d1813!important;border:2px solid #c9962e!important;padding:22px 26px!important;margin-top:22px}
/* Mal's cover: springs forward out of the page like a pop-up, then settles back */
#shelf-card .sc-cover{position:relative;z-index:3;transform-origin:50% 60%}
#shelf-card.pop .sc-cover{animation:cover-forward 1.6s cubic-bezier(.25,.9,.3,1) both!important}
@keyframes cover-forward{
  0%{opacity:0;transform:perspective(900px) translateZ(-120px) rotateY(-18deg) scale(.7);box-shadow:0 8px 18px -10px rgba(0,0,0,.6)}
  35%{opacity:1;transform:perspective(900px) translateZ(160px) rotateY(6deg) scale(1.28);box-shadow:0 60px 90px -20px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.12)}
  55%{transform:perspective(900px) translateZ(150px) rotateY(0) scale(1.24)}
  100%{transform:perspective(900px) translateZ(0) rotateY(0) scale(1);box-shadow:0 18px 34px -14px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08)}}
@media (prefers-reduced-motion:reduce){#shelf-card.pop .sc-cover{animation:none!important}}
/* Keren's dedication to Mal, at the end of the pop-up */
html body .mal-dlg .mb-ded{margin-top:30px;padding-top:24px;border-top:1px solid rgba(138,90,43,.35)}
html body .mal-dlg .mb-ded p{font-family:var(--display);font-style:italic;font-size:clamp(1.25rem,1.7vw,1.45rem)!important;line-height:1.5!important;color:#1d1813!important;margin:0}
html body .mal-dlg .mb-ded .mb-sign{font-family:var(--hand)!important;font-style:normal;font-size:2.4rem!important;color:#8a5a2b!important;text-align:right;margin-top:6px;line-height:1}
/* Mal's cover: comes further forward before resting back */
@keyframes cover-forward2{
  0%{opacity:0;transform:perspective(900px) translateZ(-140px) rotateY(-20deg) scale(.65);box-shadow:0 8px 18px -10px rgba(0,0,0,.6)}
  35%{opacity:1;transform:perspective(900px) translateZ(230px) rotateY(7deg) scale(1.45);box-shadow:0 80px 110px -20px rgba(0,0,0,.92),0 0 0 1px rgba(255,255,255,.14)}
  58%{transform:perspective(900px) translateZ(215px) rotateY(0) scale(1.4)}
  100%{transform:perspective(900px) translateZ(0) rotateY(0) scale(1);box-shadow:0 18px 34px -14px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08)}}
#shelf-card.pop .sc-cover{animation:cover-forward2 1.9s cubic-bezier(.25,.9,.3,1) both!important}
/* the dedication in her handwriting, bold and larger */
html body .mal-dlg .mb-ded p:not(.mb-sign){font-family:var(--hand)!important;font-style:normal!important;font-size:clamp(2.05rem,2.7vw,2.45rem)!important;line-height:1.15!important;color:#1d1813!important;-webkit-text-stroke:.7px currentColor}
html body .mal-dlg .mb-ded .mb-sign{-webkit-text-stroke:.6px currentColor}
/* the shelf card for Mal's book: Keren's dedication, in a cream box, in her hand */
#shelf-card .sc-ded{background:#f6f1e6;border:1px solid rgba(138,90,43,.45);padding:clamp(20px,2.4vw,30px) clamp(22px,2.6vw,34px);box-shadow:0 18px 40px -22px rgba(0,0,0,.8)}
#shelf-card .sc-ded p{font-family:var(--hand)!important;font-size:clamp(1.85rem,2.4vw,2.2rem)!important;line-height:1.15!important;color:#1d1813!important;-webkit-text-stroke:.6px currentColor;margin:0}
#shelf-card .sc-ded .sc-sign{color:#8a5a2b!important;text-align:right;margin-top:14px!important}
/* the shelf card for Mal's book: Keren's dedication, in a cream box, in her hand */
#shelf-card .sc-ded{background:#f6f1e6;border:1px solid rgba(138,90,43,.45);padding:clamp(20px,2.4vw,30px) clamp(22px,2.6vw,34px);box-shadow:0 18px 40px -22px rgba(0,0,0,.8)}
#shelf-card .sc-ded p{font-family:var(--hand)!important;font-size:clamp(1.85rem,2.4vw,2.2rem)!important;line-height:1.15!important;color:#1d1813!important;-webkit-text-stroke:.6px currentColor;margin:0}
#shelf-card .sc-ded .sc-sign{color:#8a5a2b!important;text-align:right;margin-top:14px!important}
#shelf-card.has-cover{grid-template-columns:auto minmax(0,.75fr) minmax(0,1.7fr)!important;max-width:1060px!important}
@media (max-width:860px){#shelf-card.has-cover{grid-template-columns:auto 1fr!important}#shelf-card.has-cover .sc-ded{grid-column:1 / -1}}
/* between the bios: a cream double rule with a small diamond at its centre, and cream frames on the portraits */
html body .bios-sec .bio{border-top:0!important;position:relative}
html body .bios-sec .bio + .bio::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;border-top:1px solid rgba(246,241,230,.55);border-bottom:1px solid rgba(246,241,230,.22)}
html body .bios-sec .bio + .bio::after{content:"";position:absolute;left:50%;top:-4px;width:12px;height:12px;background:#f6f1e6;transform:translateX(-50%) rotate(45deg);box-shadow:0 0 0 5px #201c19}
html body .bios-sec .bio .arch img{border:clamp(8px,1vw,12px) solid #f6f1e6!important;border-radius:2px!important;box-shadow:0 0 0 1px rgba(138,90,43,.45),0 22px 40px -20px rgba(0,0,0,.8)!important}
html body section.values9.shelf9-ban .v9-sub{max-width:44em;margin-inline:auto}
html body section.shelf-sec{padding-top:clamp(40px,5vw,64px)!important}
/* the divider ornament is the CIPSE logo */
html body .bios-sec .bio + .bio::after{width:52px;height:52px;top:-23px;background:#201c19 url('img/5ac1cfbd60.png') center/44px no-repeat;transform:translateX(-50%);border-radius:50%;box-shadow:0 0 0 8px #201c19}
html body .bios-sec .bio + .bio::after{width:76px;height:76px;top:-35px;background-size:68px}
html body section.values9.shelf9-ban .v9-sub{font-size:clamp(1.2rem,1.6vw,1.4rem)!important;line-height:1.6!important;color:#2a211a!important}
/* banner labels (e.g. "THE SHELF BEHIND THE CHAIR"): larger and bold, on every banner */
html body section.values9 .v9-k{font-size:clamp(.92rem,1.1vw,1.05rem)!important;font-weight:700!important}
html body section.values9 .v9-k{font-size:clamp(1.1rem,1.35vw,1.25rem)!important}
/* tighter space after the cream banners on Our people */
html body section.bios-sec{padding-top:clamp(24px,3vw,40px)!important}
html body section.bios-sec .bio:first-child{padding-top:clamp(20px,2.4vw,34px)!important}
html body section.shelf-sec{padding-top:clamp(22px,2.6vw,36px)!important}
html body section.values9.meet9-ban,html body section.values9.shelf9-ban{padding-bottom:clamp(26px,3vw,40px)!important}
html body section.values9.shelf9-ban .v9-sub{font-size:clamp(1.4rem,1.95vw,1.7rem)!important;max-width:40em}
/* Mal's book: stands in line with the others, and every few seconds is drawn out a little and slid back, inviting a click */
html body #shelf-row .spine.pulled{transform:none;animation:mal-tug 7s ease-in-out 1.5s infinite}
html body #shelf-row .spine.pulled:hover,html body #shelf-row .spine.pulled:focus-visible,html body #shelf-row .spine.pulled[aria-pressed="true"]{animation:none;transform:translateY(-30px) rotate(-2.5deg)}
@keyframes mal-tug{
  0%,58%,100%{transform:none;box-shadow:inset -7px 0 12px -6px rgba(0,0,0,.4),inset 3px 0 0 rgba(255,255,255,.12)}
  68%{transform:translate(-3px,-34px) rotate(-3deg);box-shadow:inset -7px 0 12px -6px rgba(0,0,0,.4),inset 3px 0 0 rgba(255,255,255,.12),14px 20px 24px -10px rgba(0,0,0,.75)}
  78%{transform:translate(-3px,-34px) rotate(-3deg)}
  90%{transform:none}}
@media (prefers-reduced-motion:reduce){html body #shelf-row .spine.pulled{animation:none;transform:translate(-4px,-18px) rotate(-2deg)}}
/* banner labels: bigger, and truly bold (the display font has no bold weight loaded, so thicken the strokes) */
html body section.values9 .v9-k{font-size:clamp(1.3rem,1.6vw,1.45rem)!important;-webkit-text-stroke:.75px currentColor!important;letter-spacing:.2em}
html body section.values9 .v9-k{font-size:clamp(1.45rem,1.8vw,1.6rem)!important;-webkit-text-stroke:1px currentColor!important}
/* bio portraits a bit larger */
@media (min-width:781px){html body .bios-sec .bio{grid-template-columns:clamp(330px,31vw,430px) 1fr!important}}
/* a chosen book stays standing on the shelf: it brightens and is outlined, but no longer lifts into the air */
html body .shelf .spine:not(.pulled):hover,html body .shelf .spine:not(.pulled)[aria-pressed="true"],html body .lib-shelf .spine:hover,html body .lib-shelf .spine[aria-pressed="true"]{transform:none!important}
/* between the bios: a thin cream band, with the double rule and the CIPSE logo in brown */
html body .bios-sec{overflow-x:clip}
html body .bios-sec .bio + .bio{margin-top:0;padding-top:calc(clamp(50px,7vw,90px) + 46px)!important}
html body .bios-sec .bio + .bio::before{left:50%;right:auto;width:100vw;transform:translateX(-50%);top:0;height:92px;border:0!important;
  background:
    linear-gradient(#8a5a2b,#8a5a2b) left calc(50% - 360px) top 42px/ min(560px,calc(50vw - 70px)) 1px no-repeat,
    linear-gradient(rgba(138,90,43,.5),rgba(138,90,43,.5)) left calc(50% - 360px) top 49px/ min(560px,calc(50vw - 70px)) 1px no-repeat,
    linear-gradient(#8a5a2b,#8a5a2b) right calc(50% - 360px) top 42px/ min(560px,calc(50vw - 70px)) 1px no-repeat,
    linear-gradient(rgba(138,90,43,.5),rgba(138,90,43,.5)) right calc(50% - 360px) top 49px/ min(560px,calc(50vw - 70px)) 1px no-repeat,
    #f6f1e6}
html body .bios-sec .bio + .bio::after{top:12px;width:68px;height:68px;border-radius:0;box-shadow:none;background:#8a5a2b;-webkit-mask:url('img/5ac1cfbd60.png') center/68px no-repeat;mask:url('img/5ac1cfbd60.png') center/68px no-repeat;transform:translateX(-50%)}
/* the same breathing room above Hilmar's and Jill's portraits as above Keren's */
html body .bios-sec .bio + .bio{padding-top:calc(92px + clamp(24px,3vw,40px) + clamp(20px,2.4vw,34px))!important}
/* Mal's book stays put while the pointer is on it (so it can't slip away from under the mouse) */
html body #shelf-row .spine.pulled:hover{transform:none!important;animation:none!important}
html body #shelf-row .spine.pulled[aria-pressed="true"]{animation:none!important;transform:none!important}
/* the popping cover never blocks the books beneath it */
#shelf-card .sc-cover,#lib-card .sc-cover{pointer-events:none}
/* banner labels: bigger and bold on every banner (cream ones too — their own rule had been overriding this) */
html body section.values9 .v9-k,html body section.values9.cream9 .v9-k{font-size:clamp(1.3rem,1.65vw,1.5rem)!important;-webkit-text-stroke:.9px currentColor!important;font-weight:700!important}
/* the Meet Us banner: slimmer */
html body section.values9.meet9-ban{padding-top:clamp(26px,3vw,40px)!important;padding-bottom:clamp(22px,2.6vw,34px)!important;min-height:0!important}
html body section.values9.meet9-ban .wrap{padding-block:0!important}
/* the logo in the cream bands: the dark version (white figures on near-black) */
html body .bios-sec .bio + .bio::after{-webkit-mask:none!important;mask:none!important;background:#1d1813 url('img/5ac1cfbd60.png') center/62px no-repeat!important;width:70px;height:70px;top:11px;border-radius:50%;box-shadow:0 0 0 2px rgba(138,90,43,.55)}
html body .bios-sec .bio + .bio::after{background-size:118px!important}
html body .bios-sec .bio + .bio::after{background-size:86px!important}
html body .shelf-close-2{font-size:clamp(1.35rem,1.75vw,1.6rem)!important;line-height:1.5!important}
/* Fees top: the handwritten "what it costs" larger */
html body #fees section.ph .for{font-size:clamp(2.3rem,3vw,2.8rem)!important;line-height:1!important;margin-bottom:10px!important}
html body section.values9.fees9-ban .v9-sub{font-size:clamp(1.2rem,1.6vw,1.4rem)!important;color:#2a211a!important}
html body #fees section.fee-cards-sec{padding-top:clamp(36px,4.5vw,60px)!important}
html body #fees section.ph.fees-top{min-height:0!important;padding-bottom:clamp(34px,4vw,54px)!important}
/* Fees cards: body text larger (all three, so they match) */
html body #fees .fee-card p:not(.fc-k){font-size:clamp(1.08rem,1.3vw,1.2rem)!important;line-height:1.6!important}
html body #fees .fee-card p:not(.fc-k){font-size:clamp(1.22rem,1.5vw,1.36rem)!important}
/* Fees cards: every line larger — label, title and text */
html body #fees .fee-card .fc-k{font-size:clamp(1rem,1.2vw,1.1rem)!important;letter-spacing:.18em}
html body #fees .fee-card h3{font-size:clamp(1.9rem,2.5vw,2.3rem)!important}
html body #fees .fee-card .fc-k{font-size:clamp(1.2rem,1.5vw,1.35rem)!important;font-weight:600}
/* each portrait starts level with the person's name, not with the small label above it */
@media (min-width:781px){html body .bios-sec .bio .arch{margin-top:68px!important}}
/* ===== Fees cards: square, handwritten titles, "Free" highlighted (design C) ===== */
html body #fees:is(.fv-a,.fv-b,.fv-c) .fee-cards{grid-template-columns:1fr 1fr 1fr!important;align-items:stretch!important;gap:clamp(18px,2.2vw,30px)!important;max-width:1080px!important}
html body #fees:is(.fv-a,.fv-b,.fv-c) .fee-card{border-radius:0!important;transform:none!important}
html body #fees:is(.fv-a,.fv-b,.fv-c) .fee-card .fc-k{letter-spacing:.12em!important;white-space:nowrap;font-size:clamp(1rem,1.25vw,1.15rem)!important}
html body #fees:is(.fv-a,.fv-b,.fv-c) .fee-card h3{font-family:var(--hand)!important;font-size:clamp(2.8rem,3.6vw,3.3rem)!important;line-height:1!important;margin:4px 0 14px!important}
html body #fees:is(.fv-a,.fv-b,.fv-c) .fee-card .fc-ic{display:none!important}
@media (max-width:900px){html body #fees:is(.fv-a,.fv-b,.fv-c) .fee-cards{grid-template-columns:1fr!important}}

/* C: the whole section turns cream; plain cards with brown lines; "Free" is the one dark card */
html body #fees.fv-c section.fee-cards-sec{background:#f6f1e6!important;padding-block:clamp(44px,5vw,70px)!important}
html body #fees.fv-c .fee-card{background:#fffaf2!important;border:1px solid rgba(138,90,43,.35)!important;box-shadow:0 14px 30px -20px rgba(60,40,20,.5)!important;padding:clamp(28px,3vw,40px)!important}
html body #fees.fv-c .fee-card .fc-k{color:#8a5a2b!important}
html body #fees.fv-c .fee-card h3{color:#1d1813!important}
html body #fees.fv-c .fee-card p:not(.fc-k){color:#3b3128!important}
html body #fees.fv-c .fee-card:nth-child(1){background:#1d1813!important;border-color:#1d1813!important}
html body #fees.fv-c .fee-card:nth-child(1) .fc-k{color:#bdb09a!important}
html body #fees.fv-c .fee-card:nth-child(1) h3{color:#e2b673!important}
html body #fees.fv-c .fee-card:nth-child(1) p:not(.fc-k){color:#e6dccb!important}
/* Fees cards: wide, low bands stacked one above the other instead of tall narrow columns */
html body #fees.fv-c .fee-cards{grid-template-columns:1fr!important;max-width:1000px!important;gap:16px!important}
html body #fees.fv-c .fee-card{display:grid!important;grid-template-columns:clamp(220px,26%,290px) 1fr;column-gap:clamp(24px,4vw,56px);align-items:center;padding:clamp(24px,2.6vw,34px) clamp(28px,3.4vw,46px)!important}
html body #fees.fv-c .fee-card .fc-k{grid-column:1;margin:0!important}
html body #fees.fv-c .fee-card h3{grid-column:1;margin:4px 0 0!important}
html body #fees.fv-c .fee-card p:not(.fc-k){grid-column:2;grid-row:1 / span 2;margin:0!important}
@media (max-width:700px){html body #fees.fv-c .fee-card{grid-template-columns:1fr}html body #fees.fv-c .fee-card p:not(.fc-k){grid-column:1;grid-row:auto;margin-top:12px!important}}
/* keep the label and title together, centred beside the text, however long the text is */
html body #fees.fv-c .fee-card{grid-template-rows:1fr auto auto 1fr!important;align-items:start}
html body #fees.fv-c .fee-card .fc-k{grid-row:2}
html body #fees.fv-c .fee-card h3{grid-row:3}
html body #fees.fv-c .fee-card p:not(.fc-k){grid-row:1 / span 4!important;align-self:center}
@media (max-width:700px){html body #fees.fv-c .fee-card{grid-template-rows:auto}html body #fees.fv-c .fee-card .fc-k,html body #fees.fv-c .fee-card h3,html body #fees.fv-c .fee-card p:not(.fc-k){grid-row:auto!important}}
/* Fees cards: white and stone, distinct from the cream around them */
html body #fees.fv-c .fee-card{background:#ffffff!important;border:1px solid #cfc8bd!important;box-shadow:0 14px 30px -22px rgba(40,34,28,.45)!important}
html body #fees.fv-c .fee-card .fc-k{color:#7d7468!important}
html body #fees.fv-c .fee-card h3{color:#2b2620!important}
html body #fees.fv-c .fee-card p:not(.fc-k){color:#3a342d!important}
html body #fees.fv-c .fee-card:nth-child(1){background:#8f877c!important;border-color:#8f877c!important}
html body #fees.fv-c .fee-card:nth-child(1) .fc-k{color:#f1ece4!important}
html body #fees.fv-c .fee-card:nth-child(1) h3{color:#ffffff!important}
html body #fees.fv-c .fee-card:nth-child(1) p:not(.fc-k){color:#fbf8f3!important}
/* "Free" stays the dark card */
html body #fees.fv-c .fee-card:nth-child(1){background:#1d1813!important;border-color:#1d1813!important}
html body #fees.fv-c .fee-card:nth-child(1) .fc-k{color:#bdb09a!important}
html body #fees.fv-c .fee-card:nth-child(1) h3{color:#e2b673!important}
html body #fees.fv-c .fee-card:nth-child(1) p:not(.fc-k){color:#e6dccb!important}
/* the two light cards: try-outs, chosen with ?tone=1..4 (1 = white is the default) */
html body #fees.tone-4 .fee-card:not(:nth-child(1)){background:#ffffff!important;border:0!important;border-left:6px solid #9c9184!important}
/* option 4, made unmistakable: a wide stone band down the left of each light card, the label sitting in it */
html body #fees.fv-c.tone-4 .fee-card:not(:nth-child(1)){background:linear-gradient(90deg,#9c9184 0 clamp(220px,26%,290px),#ffffff clamp(220px,26%,290px))!important;border:0!important}
html body #fees.fv-c.tone-4 .fee-card:not(:nth-child(1)) .fc-k{color:#f4efe6!important}
html body #fees.fv-c.tone-4 .fee-card:not(:nth-child(1)) h3{color:#ffffff!important}
html body #fees.fv-c.tone-4 .fee-card{padding-left:0!important}
html body #fees.fv-c.tone-4 .fee-card .fc-k,html body #fees.fv-c.tone-4 .fee-card h3{padding-left:clamp(24px,2.6vw,34px)}
@media (max-width:700px){html body #fees.fv-c.tone-4 .fee-card:not(:nth-child(1)){background:#ffffff!important;border-top:8px solid #9c9184!important}html body #fees.fv-c.tone-4 .fee-card:not(:nth-child(1)) .fc-k{color:#7d7468!important}html body #fees.fv-c.tone-4 .fee-card:not(:nth-child(1)) h3{color:#2b2620!important}}
/* Fees: less space between the banner and the cards */
html body section.values9.fees9-ban{padding-bottom:clamp(14px,1.6vw,22px)!important}
html body #fees.fv-c section.fee-cards-sec{padding-top:clamp(14px,1.6vw,22px)!important}
/* Fees top: the heading sits low, near the cream banner */
html body #fees section.ph.fees-top{padding-top:calc(var(--nav-h) + clamp(70px,8vw,120px))!important;padding-bottom:clamp(14px,1.6vw,22px)!important;display:flex;align-items:flex-end}
html body #fees section.ph.fees-top h1{margin-bottom:0!important}
html body section.values9.fees9-ban{min-height:0!important;padding-bottom:12px!important}
html body #fees.fv-c section.fee-cards-sec{padding-top:12px!important}
/* Fees top: heading centred in the dark bar (equal space above and below) */
html body #fees section.ph.fees-top{padding-top:calc(var(--nav-h) + clamp(44px,5vw,70px))!important;padding-bottom:clamp(44px,5vw,70px)!important;align-items:center}
/* Contact: "Taking the Time to Be Known" — three layouts to try (?chair=2, ?chair=3; 1 is the default) */
.known9{position:relative;background:#120e0b;color:#f4efe6;overflow:hidden}
.known9 .kn-pic{margin:0}
.known9 .kn-pic img{display:block;width:100%;height:100%;object-fit:cover}
.known9 h2{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,4.4vw,4rem);line-height:1.08;margin:0 0 18px;color:#fff}
.known9 p{font-family:var(--display);font-size:clamp(1.2rem,1.6vw,1.45rem);color:#e8dfd0;margin:0 0 26px}
.known9 .kn-more{font-family:var(--sans);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.9rem;color:#e2b673;text-decoration:none;border-bottom:1px solid rgba(226,182,115,.5);padding-bottom:4px}
.known9 .kn-more:hover{color:#f0cf91}
/* 1: full-width photo, text over the dark left side */
.known9{min-height:clamp(420px,52vw,620px);display:flex;align-items:center}
.known9 .kn-pic{position:absolute;inset:0}
.known9 .kn-pic img{object-position:60% 40%}
.known9::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,9,7,.92) 0%,rgba(12,9,7,.7) 38%,rgba(12,9,7,.1) 70%)}
.known9 .kn-txt{position:relative;z-index:2;max-width:1160px;width:100%;margin:0 auto;padding:clamp(40px,6vw,80px) clamp(20px,5vw,60px)}
.known9 .kn-txt > *{max-width:560px}
/* 2: photo and words side by side, the photo framed in cream */
.known9.ch-2{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(30px,5vw,80px);padding:clamp(50px,6vw,90px) max(clamp(20px,5vw,60px),calc((100vw - 1160px)/2));min-height:0}
.known9.ch-2::before{display:none}
.known9.ch-2 .kn-pic{position:relative;inset:auto;border:clamp(10px,1.2vw,16px) solid #f6f1e6;box-shadow:0 0 0 1px rgba(138,90,43,.45),0 26px 50px -24px rgba(0,0,0,.9);aspect-ratio:4/5}
.known9.ch-2 .kn-txt{padding:0;margin:0}
/* 3: a wide, low strip of the photo, words centred beneath on cream */
.known9.ch-3{display:block;min-height:0;background:#f6f1e6;color:#1d1813;text-align:center}
.known9.ch-3::before{display:none}
.known9.ch-3 .kn-pic{position:relative;inset:auto;height:clamp(240px,30vw,380px)}
.known9.ch-3 .kn-pic img{object-position:50% 52%}
.known9.ch-3 .kn-txt{padding:clamp(30px,4vw,50px) 20px clamp(36px,4.5vw,56px)}
.known9.ch-3 .kn-txt > *{max-width:none}
.known9.ch-3 h2{color:#1d1813}
.known9.ch-3 h2 br{display:none}
.known9.ch-3 p{color:#3b3128}
.known9.ch-3 .kn-more{color:#8a5a2b;border-color:rgba(138,90,43,.5)}
@media (max-width:760px){.known9.ch-2{grid-template-columns:1fr}.known9::before{background:linear-gradient(180deg,rgba(12,9,7,.9),rgba(12,9,7,.55))}}
.known9 .kn-pic img{object-position:50% 22%}
.known9.ch-3 .kn-pic img{object-position:50% 30%}
.known9.ch-2 .kn-pic img{object-position:50% 50%}
/* Contact: the leather-chair section opens the page */
html body .known9.kn-top{padding-top:calc(var(--nav-h) + clamp(40px,5vw,70px))!important}
/* Contact: the window opening, narrower (less tall) */
html body section.ph.win-top{min-height:0!important;padding-top:calc(var(--nav-h) + clamp(36px,4.5vw,64px))!important;padding-bottom:clamp(36px,4.5vw,64px)!important}
html body section.ph.win-top h1{font-size:clamp(2.4rem,4vw,3.6rem)!important;line-height:1.05!important}
html body section.ph.win-top .for{font-size:clamp(1.5rem,2vw,1.9rem)!important}
html body section.ph.win-top .actions{margin-top:20px!important}
html body .known9.ch-2{padding-top:clamp(36px,4.5vw,60px)!important}
/* Contact opening: the window photo framed beside the words, with a thin gold line set off from it */
html body .known9.win9{padding-top:calc(var(--nav-h) + clamp(40px,5vw,70px))!important;padding-bottom:clamp(30px,4vw,50px)!important}
html body .known9.win9 .kn-pic{border:0!important;box-shadow:0 26px 50px -24px rgba(0,0,0,.9)!important;aspect-ratio:auto;position:relative;margin:0 26px 26px 0}
html body .known9.win9 .kn-pic img{aspect-ratio:4/5;object-position:50% 45%}
html body .known9.win9 .kn-pic::after{content:"";position:absolute;inset:26px -26px -26px 26px;border:1px solid rgba(201,164,106,.6);pointer-events:none}
html body .known9.win9 .for{font-family:var(--hand);font-size:clamp(1.9rem,2.5vw,2.3rem);color:#e2b673;margin:0 0 8px;line-height:1}
html body .known9.win9 h1{font-family:var(--display);font-weight:400;font-size:clamp(2.6rem,4.4vw,4rem);line-height:1.06;margin:0 0 18px;color:#fff}
html body .known9.win9 h1 em{color:#e2b673}
html body .known9.win9 .lede{font-family:var(--display);font-size:clamp(1.15rem,1.5vw,1.35rem);color:#e8dfd0;line-height:1.6;margin:0}
/* the chair section that follows: same gold-line frame, so the two match */
html body .known9.ch-2:not(.win9){padding-top:clamp(40px,5vw,70px)!important}
html body .known9.ch-2:not(.win9) .kn-pic{border:0!important;margin:0 26px 26px 0;position:relative}
html body .known9.ch-2:not(.win9) .kn-pic::after{content:"";position:absolute;inset:26px -26px -26px 26px;border:1px solid rgba(201,164,106,.6);pointer-events:none}
/* Contact top in the same design as the therapy and Our people pages */
html body section.ph.ph-contact-split .phs-pic img.phs-main{object-position:50% 47%}
html body .known9.ch-2:not(.win9){padding-top:clamp(50px,6vw,90px)!important}
html body section.ph.ph-contact-split .for{margin:0 0 10px!important}
html body section.ph.ph-contact-split .phs-refl{margin-bottom:14px!important}
html body section.ph.ph-contact-split .panel .small{font-size:clamp(1.12rem,1.35vw,1.25rem)!important}
/* ===== Contact page: three looks to try (?look=1, 2, 3) ===== */
/* shared for the light looks: the booking panel in dark ink */
body:is(.bl-1,.bl-2,.bl-3) .booker{border-radius:0!important;background:#ffffff!important;border:1px solid #cfc8bd!important;box-shadow:0 22px 44px -26px rgba(40,30,20,.45)!important;color:#2b2620}
body:is(.bl-1,.bl-2,.bl-3) .booker :is(h3,legend,b){color:#1d1813!important}
body:is(.bl-1,.bl-2,.bl-3) .booker :is(p,.dim,.qlabel,.consent,.field label,small,.notice){color:#4a4035!important}
body:is(.bl-1,.bl-2,.bl-3) .bk-steps{background:#efebe4;border-bottom:1px solid #d9d2c6!important}
body:is(.bl-1,.bl-2,.bl-3) .bk-steps span{color:#7d7468!important}
body:is(.bl-1,.bl-2,.bl-3) .bk-steps span.on{color:#1d1813!important;box-shadow:inset 0 -3px 0 #8a5a2b!important}
body:is(.bl-1,.bl-2,.bl-3) .pick label{border-radius:0!important;background:#fff;border:1px solid #d6cfc3!important;box-shadow:none!important}
body:is(.bl-1,.bl-2,.bl-3) .pick label:has(input:checked){background:#1d1813!important;border-color:#1d1813!important}
body:is(.bl-1,.bl-2,.bl-3) .pick label:has(input:checked) b{color:#e2b673!important}
body:is(.bl-1,.bl-2,.bl-3) .pick label:has(input:checked) small{color:#e6dccb!important}
body:is(.bl-1,.bl-2,.bl-3) .pick .q{background:#efebe4!important;color:#8a5a2b!important}
body:is(.bl-1,.bl-2,.bl-3) .booker .field :is(input,textarea,select){background:#fff!important;border:1px solid #cfc8bd!important;border-radius:0!important;color:#1d1813!important}
body:is(.bl-1,.bl-2,.bl-3) .booker .chips span{border-color:#cfc8bd!important;color:#3b3128!important}
body:is(.bl-1,.bl-2,.bl-3) .booker .chips input:checked + span{background:#1d1813!important;color:#f6f1e6!important;border-color:#1d1813!important}
body:is(.bl-1,.bl-2,.bl-3) .booker .btn-q{border-color:#8f877c!important;color:#1d1813!important}
/* 3: stays dark around it, the panel is cream paper in a cream frame, like the room picture */
body.bl-3 .booker{background:#f6f1e6!important;outline:clamp(10px,1.2vw,16px) solid #f6f1e6;outline-offset:0;box-shadow:0 0 0 calc(clamp(10px,1.2vw,16px) + 1px) rgba(138,90,43,.45),0 30px 60px -26px rgba(0,0,0,.9)!important;border-color:rgba(138,90,43,.35)!important}
body.bl-3 .bk-steps{background:#ece5d7}
body.bl-3 .pick label{background:#fbf8f2}
body.bl-3 section.book-sec{padding-bottom:clamp(60px,7vw,100px)!important}
/* Contact now opens with the chair section */
html body .known9.kn-top{padding-top:calc(var(--nav-h) + clamp(44px,5vw,80px))!important}
html body .known9 .kn-for{font-family:var(--hand);font-size:clamp(2rem,2.6vw,2.4rem);line-height:1;color:#e2b673;margin:0 0 10px}
html body .known9 .kn-sub{font-family:var(--display);font-size:clamp(1.7rem,2.5vw,2.2rem);color:#fff;margin:0 0 26px;line-height:1.2}
html body .known9 .kn-sub em{color:#e2b673}
html body .known9.ch-2.kn-top{padding-top:calc(var(--nav-h) + clamp(50px,5.5vw,84px))!important}
/* booking choices: larger names and descriptions */
html body .pick b{font-size:clamp(1.5rem,1.9vw,1.75rem)!important}
html body .pick small{font-size:clamp(.98rem,1.15vw,1.08rem)!important;line-height:1.45!important}
/* the window top, now photo only: no empty band under it */
html body section.ph.ph-contact-split .phs-band{display:none}
/* the chair section's words start level with the top of the gold frame */
html body .known9.ch-2:not(.win9) .kn-txt{align-self:start;margin-top:26px!important}
html body .known9 .kn-for{margin-top:0!important}
/* ===== booking-panel options (?opt=…) ===== */
/* 1: tall portrait cards — larger photo in a thin cream frame, name and details beneath; gold frame when chosen */
body.bp-1 .pick label{grid-template-columns:1fr!important;text-align:center;justify-items:center;padding:26px 22px 24px!important;gap:12px!important;align-content:start}
body.bp-1 .pick :is(img,.q){grid-row:auto!important;width:132px!important;height:132px!important;border-radius:0!important;border:6px solid #f6f1e6;box-shadow:0 0 0 1px rgba(138,90,43,.45),0 12px 22px -14px rgba(0,0,0,.6)}
body.bp-1 .pick .q{border-radius:0!important;font-size:3rem}
body.bp-1 .pick label:has(input:checked){background:#fffdf8!important;border:2px solid #c9962e!important;box-shadow:0 0 0 4px rgba(201,150,46,.18)!important}
body.bp-1 .pick label:has(input:checked) b{color:#1d1813!important}
body.bp-1 .pick label:has(input:checked) small{color:#4a4035!important}
/* 2: the logo's figures; the chosen name written above the empty chair */
.bp-seat{display:flex;align-items:flex-end;justify-content:center;gap:26px;margin:-6px 0 18px}
.bp-seat img{width:110px;height:110px;border-radius:50%;background:#1d1813;padding:4px}
.bp-seat p{font-family:var(--hand);font-size:2.4rem;line-height:1;margin:0 0 34px;color:#8a5a2b;min-width:120px}
.bp-seat .bp-you{text-align:right}
.bp-seat .bp-them{color:#1d1813}
.bp-seat .bp-them.in{animation:bp-write .9s ease}
@keyframes bp-write{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
/* 3: even cards — photo above the words, so every card is the same shape */
body.bp-3:not(.bp-1) .pick label{grid-template-columns:1fr!important;justify-items:start;align-content:start;padding:22px!important;gap:10px!important}
body.bp-3:not(.bp-1) .pick :is(img,.q){grid-row:auto!important}
/* 4: the steps as a handwritten path */
body.bp-4 .bk-steps{position:relative;justify-content:space-around;background:transparent!important;border-bottom:0!important;padding:14px 0 18px}
body.bp-4 .bk-steps::before{content:"";position:absolute;left:16%;right:16%;top:50%;border-top:1px dashed rgba(138,90,43,.5)}
body.bp-4 .bk-steps span{flex:0 0 auto;position:relative;z-index:1;background:#f6f1e6;padding:0 14px!important;font-family:var(--hand)!important;font-size:1.9rem!important;letter-spacing:0!important;color:#a59a8c!important;box-shadow:none!important}
body.bp-4 .bk-steps span.on{color:#1d1813!important}
body.bp-4 .bp-dot{position:absolute;bottom:4px;width:10px;height:10px;border-radius:50%;background:#c9962e;transform:translateX(-50%);transition:left .6s cubic-bezier(.3,.8,.3,1)}
/* 5: two empty chairs */
body.bp-5 .pick .q svg{width:60%;height:auto;color:#8a5a2b}
/* 6: a quiet line under the cards */
.bp-note{font-family:var(--display);font-style:italic;font-size:1.15rem;color:#5a4f44!important;text-align:center;margin:22px 0 0}
/* chair section: the two short lines at the top of the gold frame, open space, the rest at its foot */
html body .known9.ch-2:not(.win9){align-items:stretch!important}
html body .known9.ch-2:not(.win9) .kn-txt{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;margin:26px 0 0!important;padding-bottom:0!important}
html body .known9.ch-2:not(.win9) .kn-body > :last-child{margin-bottom:0}
@media (max-width:760px){html body .known9.ch-2:not(.win9) .kn-txt{margin-top:40px!important;gap:30px}}
html body .known9.ch-2:not(.win9) .kn-txt{margin-top:52px!important}
/* Contact: window section — words on the left, window framed in gold on the right; the chair section below mirrors it */
html body .known9.win-right{padding-top:calc(var(--nav-h) + clamp(50px,5.5vw,84px))!important;padding-bottom:clamp(20px,3vw,40px)!important}
html body .known9.win-right .kn-pic{position:relative;border:0!important;margin:0 0 26px 26px!important;box-shadow:0 26px 50px -24px rgba(0,0,0,.9)!important;aspect-ratio:4/5}
html body .known9.win-right .kn-pic img{object-position:50% 45%}
html body .known9.win-right .kn-pic::after{content:"";position:absolute;inset:26px 26px -26px -26px;border:1px solid rgba(201,164,106,.6);pointer-events:none}
html body .known9.win-right .kn-txt{align-self:center;margin:0!important}
html body .known9.win-right .kn-sub{font-size:clamp(2.2rem,3.4vw,3rem);margin-bottom:0}
html body .known9.win-right .kn-for{font-size:clamp(2.3rem,3vw,2.8rem)}
html body .known9.ch-2:not(.win9):not(.win-right){padding-top:clamp(40px,5vw,70px)!important}
html body .known9.ch-2:not(.win9):not(.win-right) .kn-txt{justify-content:flex-end;margin-top:0!important}
@media (max-width:760px){html body .known9.win-right .kn-pic{margin:0 26px 26px 26px!important}}
html body .known9.win-right .kn-txt{display:block!important;align-self:center!important;margin:0!important}
html body .known9.ch-2.win-right{padding-top:calc(var(--nav-h) + clamp(50px,5.5vw,84px))!important}
/* window section, as in Keren's picture: wider words column, the window toward the right edge, gold line set off down and to the right */
html body .known9.ch-2.win-right{grid-template-columns:1.35fr 1fr!important}
html body .known9.win-right .kn-pic{margin:0 26px 26px 0!important}
html body .known9.win-right .kn-pic::after{inset:26px -26px -26px 26px!important}
html body .known9.win-right .kn-sub{font-size:clamp(2.6rem,4.2vw,3.8rem)!important;line-height:1.1}
html body .known9.win-right .kn-sub{font-size:clamp(2.2rem,3.4vw,3.1rem)!important}
/* the booking panel spans the same width as the chair section (photo frame to the end of the words) */
html body section.book-sec > .wrap{max-width:none!important;width:auto!important;padding-inline:calc(max(clamp(20px,5vw,60px),(100vw - 1160px)/2) + clamp(10px,1.2vw,16px))!important;margin:0!important}
/* both sections: words start up at the top of the gold frame */
html body .known9.ch-2 .kn-txt{align-self:start!important;justify-content:flex-start!important;margin-top:46px!important}
.bp-note{font-size:clamp(1.4rem,1.9vw,1.65rem)!important;color:#3b3128!important}
/* booking panel buttons: square, dark ink with gold lettering, a quiet arrow — matching the paper panel */
body.bl-3 .booker .btn{border-radius:0!important;box-shadow:none!important;font-family:var(--display)!important;font-size:1.25rem!important;letter-spacing:.04em;padding:.7em 1.6em!important}
body.bl-3 .booker .btn::before{display:none!important}
body.bl-3 .booker .btn-p{background:#1d1813!important;color:#e2b673!important;border:1px solid #1d1813!important}
body.bl-3 .booker .btn-p::after{content:" \2192";margin-left:.4em;transition:margin .25s}
body.bl-3 .booker .btn-p:hover{background:#2b231c!important}
body.bl-3 .booker .btn-p:hover::after{margin-left:.7em}
body.bl-3 .booker .btn-q{background:transparent!important;color:#1d1813!important;border:1px solid #8f877c!important}
/* single-picture versions */
html body .known9.one-pic.kn-first{padding-top:calc(var(--nav-h) + clamp(50px,5.5vw,84px))!important}
html body .known9.one-pic .kn-txt{display:flex!important;flex-direction:column;justify-content:space-between!important;align-self:stretch!important;margin:46px 0 26px!important}
html body .known9.one-pic .kn-sub{margin-bottom:0!important}
html body .known9.one-pic .kn-more-words h2,html body .known9.one-pic .kn-body h2{margin-top:0}
html body .known9.one-pic .kn-more-words p:last-child{margin-bottom:0}
html body .known9.ch-2.one-pic.kn-first:not(.win-right){padding-top:calc(var(--nav-h) + clamp(50px,5.5vw,84px))!important}
html body .known9.one-pic .kn-txt{justify-content:center!important;gap:0}
html body .known9.one-pic .kn-sub{margin-bottom:34px!important}
html body .known9.one-pic .kn-txt > .kn-body,html body .known9.one-pic .kn-more-words{margin:0}
/* Contact, version 3: window top, then the booking panel, then the chair — the chair words centred beside the photo */
body.v3 .known9.ch-2 .kn-txt{align-self:center!important;margin:0!important;display:block!important}
body.v3 .known9.ch-2{padding-top:clamp(60px,7vw,100px)!important;padding-bottom:clamp(60px,7vw,100px)!important}
body.v3 section.book-sec{padding-bottom:clamp(20px,3vw,40px)!important}
body.v3 section.ph.ph-contact-split .phs-band{display:block!important}
/* ===== Contact version 4: picture, invitation and the form together on the first screen ===== */
body.v4 .v4-top{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.32fr);gap:clamp(36px,5vw,80px);align-items:start;background:#120e0b;color:#f4efe6;padding:calc(var(--nav-h) + clamp(40px,4.5vw,70px)) max(clamp(20px,5vw,60px),calc((100vw - 1240px)/2)) clamp(50px,6vw,90px)}
body.v4 .v4-pic{position:sticky;top:calc(var(--nav-h) + 30px);margin:0 26px 26px 0;box-shadow:0 26px 50px -24px rgba(0,0,0,.9)}
body.v4 .v4-pic img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 40%}
body.v4 .v4-pic::after{content:"";position:absolute;inset:26px -26px -26px 26px;border:1px solid rgba(201,164,106,.6);pointer-events:none}
body.v4 .v4-main .kn-for{font-family:var(--hand);font-size:clamp(2rem,2.6vw,2.4rem);line-height:1;color:#e2b673;margin:0 0 10px}
body.v4 .v4-main h1{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,3.8vw,3.5rem);line-height:1.08;margin:0 0 14px;color:#fff}
body.v4 .v4-main h1 em{font-style:normal;color:#fff}
body.v4 .v4-lede{font-family:var(--display);font-size:clamp(1.15rem,1.45vw,1.3rem);line-height:1.6;color:#e8dfd0;margin:0 0 30px;max-width:40em}
body.v4 .booker{margin-top:6px}
body.v4 .pick{grid-template-columns:1fr!important;gap:10px!important}
body.v4 .pick label{grid-template-columns:72px 1fr!important;padding:14px 18px!important}
body.v4 .pick :is(img,.q){width:72px!important;height:72px!important}
body.v4 .bk-pane h3{font-size:clamp(1.6rem,2vw,1.9rem)!important;margin-bottom:16px}
body.v4 .bp-note{font-size:clamp(1.15rem,1.4vw,1.3rem)!important;text-align:left;margin-top:16px}
@media (max-width:900px){body.v4 .v4-top{grid-template-columns:1fr}body.v4 .v4-pic{position:relative;top:auto;max-width:420px}}
body.v4 .v4-top{padding-top:calc(var(--nav-h) + clamp(26px,3vw,46px))!important}
body.v4 .v4-lede{margin-bottom:20px!important}
body.v4 .pick label{padding:11px 18px!important}
body.v4 .pick :is(img,.q){width:62px!important;height:62px!important}
/* bp-note in a wine colour */
html body .booker .bp-note{color:#7a2638!important}
/* Finding us: three calm columns, larger type */
html body .finding .find-h{font-size:clamp(2.2rem,3.4vw,3rem)!important;margin-bottom:34px!important}
html body .finding .find3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3.5vw,54px);max-width:none!important;margin-bottom:46px}
html body .finding .f3{border-top:1px solid rgba(201,164,106,.55);padding-top:18px}
html body .finding .f3 p{margin:0;font-size:clamp(1.2rem,1.45vw,1.35rem)!important;line-height:1.6;color:#e8dfd0!important;font-style:normal!important}
html body .finding .f3 p.f3-k{font-family:var(--display);font-weight:600;font-size:clamp(1.35rem,1.7vw,1.55rem)!important;color:#e2b673!important;margin-bottom:10px}
@media (max-width:820px){html body .finding .find3{grid-template-columns:1fr}}
html body p.bp-note,html body.bl-3 p.bp-note{color:#7a2638!important}
html body .finding{padding-top:clamp(50px,6vw,80px)!important}
body:is(.bl-1,.bl-2,.bl-3) .booker p.bp-note,html body .booker p.bp-note{color:#7a2638!important}
body:is(.bl-1,.bl-2,.bl-3) .booker p.bp-note,html body .booker p.bp-note{font-weight:700!important}
/* Booking form: everything bolder and darker, easier to read */
body:is(.bl-1,.bl-2,.bl-3) .booker :is(p,.dim,.qlabel,.consent,.field label,label,small,.notice,.chip,.seg label,button),html body .booker :is(p,.dim,.field label,label,small,.notice){font-weight:600!important;color:#1d1813!important}
html body .booker .field label{font-size:1.02rem!important;letter-spacing:.02em}
html body .booker .field label :is(span,em,small),html body .booker .opt{color:#5a4f44!important;font-weight:600!important}
html body .booker :is(input,textarea,select){font-weight:600!important;color:#1d1813!important}
html body .booker :is(input,textarea)::placeholder{color:#6b5f52!important;opacity:1;font-weight:500}
html body .booker :is(h2,h3){font-weight:600!important;color:#1d1813!important}
body:is(.bl-1,.bl-2,.bl-3) .booker p.bp-note,html body .booker p.bp-note{color:#7a2638!important}
body.bl-3 .pick label:has(input:checked) :is(b,small),body.bl-3 .booker label:has(input:checked) :is(span,b,small){color:inherit}
html body .booker :is(.bk-steps,.steps,[class*="step"]) :is(li,span,button,a){font-weight:600!important}
html body .booker [role="tab"],html body .booker .bk-steps *{font-weight:600!important;color:#3b3128!important;font-size:.95rem!important}
html body .booker .pick label:has(input:checked) small{color:#f4efe6!important}
html body .booker legend{font-weight:600!important;color:#1d1813!important}
html body .booker :is(.qlabel,.field label,.field > p,fieldset > p,.field-label){font-size:clamp(1.12rem,1.3vw,1.22rem)!important;font-weight:700!important}
html body .booker :is(.qlabel,.field label) :is(span,em,small),html body .booker .opt{font-size:inherit!important;font-weight:700!important}
html body .booker :is(.chip,.chips label,.seg label,.days label,.times label){font-size:1.05rem!important;font-weight:600!important}
html body .booker :is(.qlabel,.field label,.field > p,fieldset > p,.field-label){font-size:clamp(1.25rem,1.5vw,1.4rem)!important}
html body .booker :is(.chip,.chips label,.seg label,.days label,.times label,.pills label){font-size:1.12rem!important}
html body .booker :is(.consent,.consent label,.notice,.notice p){font-size:1.08rem!important;line-height:1.55!important}
html body .booker .chips label span,html body .booker .chips span{font-size:1.12rem!important;font-weight:600!important;padding:11px 18px!important}
/* buttons keep gold lettering on dark (overrides the bold-everything rule) */
body:is(.bl-1,.bl-2,.bl-3) .booker :is(.btn-p,.btn,button[type="submit"],.bk-nav button),html body .booker :is(.btn-p,button[type="submit"]){color:#e2b673!important;font-weight:600!important;font-size:1.12rem!important}
body:is(.bl-1,.bl-2,.bl-3) .booker :is(.btn-p,.btn,button[type="submit"],.bk-nav button) *{color:inherit!important}
html body .booker .bk-nav :is(.btn-g,.btn-ghost,.back,button.ghost){color:#1d1813!important}
html body .booker :is(legend,h4){font-weight:600!important;color:#1d1813!important}
html body .booker :is(.consent,.consent label,.consent span,.notice,.notice p){font-size:1.22rem!important;line-height:1.55!important}
html body .booker .consent input[type="checkbox"]{width:22px;height:22px}
body:is(.bl-1,.bl-2,.bl-3) .booker .btn.btn-q,html body .booker .btn.btn-q{color:#1d1813!important;border-color:#1d1813!important;background:transparent!important}
body:is(.bl-1,.bl-2,.bl-3) .booker .bk-nav .btn-p,html body .booker .bk-nav .btn-p{min-width:200px;padding-inline:40px!important;justify-content:center}
html body .booker #bk-title{color:#7a2638!important}
/* Finding us: each column its own taupe card */
html body .finding .find3{gap:clamp(18px,2vw,28px)!important}
html body .finding .f3{background:#4f453c;border:0!important;border-top:3px solid #c9a46a!important;padding:26px 28px 30px!important}
html body .finding .f3 p{color:#f4efe6!important}
/* Send / Continue: taller rather than longer */
body:is(.bl-1,.bl-2,.bl-3) .booker .bk-nav .btn-p,html body .booker .bk-nav .btn-p{min-width:0!important;padding:22px 30px!important;font-size:1.2rem!important}
/* Booking form: all choice buttons square-cornered, like the rest of the form */
html body .booker :is(.chips label,.chips span,.seg label,.seg span,.pills label,.pills span,.chip,button,.btn,input[type="text"],input[type="email"],input[type="tel"],textarea){border-radius:0!important}
html body .foot-base .ai-note{opacity:.85;margin-left:.3em}
/* Finding us: rectangular Google Maps button, larger lettering; walking-map link larger */
html body .finding .find-dir .btn{border-radius:0!important;font-size:clamp(1.15rem,1.4vw,1.3rem)!important;font-weight:600!important;padding:20px 34px!important;color:#1d1813!important}
html body .finding .find-dir .full-map{font-size:clamp(1.15rem,1.4vw,1.3rem)!important;font-weight:600!important;color:#f4efe6!important;text-decoration-color:rgba(226,182,115,.8)!important}
html body .finding .find-dir .btn{display:inline-flex!important;align-items:center;gap:12px}
html body .finding .find-dir .map-pin{width:24px;height:24px;flex:none}
html body .finding .find-dir .gmaps-ic{width:34px;height:34px;flex:none;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25)}
html body .finding .find-dir .full-map{border-bottom:0!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:6px!important;text-decoration-color:#e2b673!important}
/* Contact: Find us elsewhere */
html body section.else9{background:#120e0b;padding:clamp(40px,5vw,70px) 0 clamp(50px,6vw,80px);text-align:center}
html body .else9-k{font-family:var(--hand);font-size:clamp(1.9rem,2.4vw,2.2rem);color:#e2b673;margin:0 0 4px;line-height:1}
html body .else9 h2{font-family:var(--display);font-weight:400;font-size:clamp(2rem,3vw,2.6rem);color:#fff;margin:0 0 28px}
html body .else9-links{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
html body .else9-btn{display:inline-flex;align-items:center;gap:10px;background:#f4efe6;color:#1d1813!important;text-decoration:none!important;font-weight:600;font-size:clamp(1.15rem,1.4vw,1.3rem);padding:20px 34px;border-radius:0;min-width:220px;justify-content:center;transition:background .2s}
html body .else9-btn:hover{background:#e2b673}
html body .else9-row{margin:0 auto 22px;max-width:900px}
html body .else9-who{font-family:var(--display);font-weight:600;font-size:clamp(1.25rem,1.5vw,1.4rem);color:#e2b673;margin:0 0 12px}
