@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(../fonts/Caveat-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Fraunces-italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Fraunces-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito Sans';
  font-style: italic;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/NunitoSans-italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/NunitoSans-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ============================================================
   Emma Barnes — Children's Author · 2026 redesign
   Storybook editorial system: parchment, ink, berry, mustard
   ============================================================ */

:root{
  --paper:#FBF6EC;
  --paper2:#F4EBD9;
  --cream:#FFFCF5;
  --ink:#1D2742;
  --ink-deep:#141B31;
  --ink-60:rgba(29,39,66,.62);
  --ink-40:rgba(29,39,66,.42);
  --line:rgba(29,39,66,.16);
  --berry:#A03246;
  --berry-deep:#7C2434;
  --berry-12:rgba(160,50,70,.12);
  --mustard:#E2A72E;
  --mustard-deep:#96660C;
  --mustard-22:rgba(226,167,46,.22);
  --green:#5E7F5C;
  --green-deep:#42603F;
  --green-16:rgba(94,127,92,.16);
  --rose:#D9718C;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --hand:'Caveat','Comic Sans MS',cursive;
  --shadow-1:0 14px 34px -20px rgba(20,27,49,.45);
  --shadow-2:0 24px 50px -24px rgba(20,27,49,.5);
  --r-lg:24px;
  --r-md:18px;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{
  margin:0;
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.11 0 0 0 0 0.15 0 0 0 0 0.26 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:pageIn .45s ease both;
}
@keyframes pageIn{from{opacity:0}}
img{max-width:100%;height:auto;display:block}
a{color:var(--berry)}
::selection{background:var(--mustard);color:var(--ink-deep)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.08;letter-spacing:-.012em;margin:0 0 .6em}
h1 em,h2 em{font-style:italic;color:var(--berry)}
h1 em.alt,h2 em.alt{color:var(--green)}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit}
:focus-visible{outline:3px dashed var(--berry);outline-offset:3px;border-radius:4px}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(1.15rem,4vw,2.5rem)}
.center{text-align:center}
.skip-link{position:absolute;left:-999px;top:0;z-index:120;background:var(--ink);color:var(--cream);padding:.8rem 1.4rem;border-radius:0 0 12px 0;font-weight:800}
.skip-link:focus{left:0}

/* ---------- kickers, chips, buttons ---------- */
.kicker{display:flex;align-items:center;gap:.55rem;font-family:var(--hand);font-size:1.45rem;font-weight:600;color:var(--berry);margin:0 0 .35rem}
.kicker .doodle{width:20px;height:20px;color:var(--mustard)}
.kicker.light{color:var(--mustard)}
.sec-lede,.chapter-lede{font-size:clamp(1.02rem,1.5vw,1.18rem);color:var(--ink-60);max-width:46rem}
.doodle{display:inline-block}
.squiggle{display:block;width:100%;height:12px}

.chip{display:inline-block;font-weight:800;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:.32rem .75rem;border-radius:999px;border:1.5px solid var(--line);color:var(--ink-60)}
.chip-age{background:var(--mustard-22);border-color:rgba(150,102,12,.45);color:var(--mustard-deep)}
.chip-series{background:var(--green-16);border-color:rgba(66,96,63,.4);color:var(--green-deep)}
.chip-one{background:var(--berry-12);border-color:rgba(124,36,52,.35);color:var(--berry-deep)}
.chip-cat{background:var(--berry-12);border-color:rgba(124,36,52,.3);color:var(--berry-deep)}

.btn{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.55rem;min-height:48px;max-width:100%;padding:.8rem 1.6rem;border-radius:999px;border:2px solid var(--ink-deep);font-weight:800;font-size:.98rem;text-decoration:none;cursor:pointer;transition:transform .22s cubic-bezier(.2,.7,.3,1.4),box-shadow .22s,background .2s;box-shadow:4px 4px 0 rgba(20,27,49,.22)}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 rgba(20,27,49,.24)}
.btn:active{transform:translate(1px,1px);box-shadow:2px 2px 0 rgba(20,27,49,.25)}
.btn .arr{width:24px;height:20px;color:inherit}
.btn-berry{background:var(--berry);border-color:var(--berry-deep);color:#FFF6F2}
.btn-mustard{background:var(--mustard);border-color:var(--ink-deep);color:var(--ink-deep)}
.btn-ink{background:var(--ink);border-color:var(--ink-deep);color:var(--cream)}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--cream)}
.btn-ghost-light{background:transparent;border-color:rgba(255,252,245,.65);color:var(--cream)}
.btn-ghost-light:hover{background:rgba(255,252,245,.12)}

.bc-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:auto;font-weight:800;font-size:.92rem;color:var(--berry);text-decoration:none}
.bc-link .arr{width:26px;height:22px;transition:transform .25s}
.bc-link:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.bc-link:hover .arr{transform:translateX(4px) rotate(6deg)}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;transition:background .3s,box-shadow .3s,border-color .3s;border-bottom:1px solid transparent}
.site-head.scrolled{background:rgba(251,246,236,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--line);box-shadow:0 8px 24px -18px rgba(20,27,49,.4)}
.head-in{display:flex;align-items:center;gap:2rem;height:78px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--ink)}
.brand-mark{color:var(--mustard);width:34px;height:34px;transform:rotate(-10deg);transition:transform .4s}
.brand:hover .brand-mark{transform:rotate(80deg) scale(1.08)}
.brand-mark .doodle{width:100%;height:100%}
.brand-txt{display:flex;flex-direction:column;line-height:1.05}
.brand-txt strong{font-family:var(--serif);font-size:1.32rem;font-weight:600;letter-spacing:-.01em}
.brand-txt em{font-style:normal;font-weight:800;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--berry)}
.nav{margin-left:auto}
.nav ul{display:flex;gap:1.55rem}
.nav a{position:relative;text-decoration:none;color:var(--ink);font-weight:700;font-size:.95rem;padding:.4rem 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:8px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c10-4 16 3 28-1s20-2 28 1' fill='none' stroke='%23E2A72E' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}
.nav a.is-active{color:var(--berry)}
.head-cta{margin-left:.4rem}
.burger{display:none;position:relative;z-index:70;width:48px;height:48px;background:transparent;border:0;cursor:pointer}
.burger span{position:absolute;left:12px;right:12px;height:2.6px;border-radius:3px;background:var(--ink);transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .2s,top .35s}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:23px}
.burger span:nth-child(3){top:30px}
body.menu-open .burger span:nth-child(1){top:23px;transform:rotate(45deg);background:var(--cream)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){top:23px;transform:rotate(-45deg);background:var(--cream)}

/* ---------- mobile menu ---------- */
.menu{position:fixed;inset:0;z-index:60;background:var(--ink-deep);color:var(--cream);display:flex;flex-direction:column;justify-content:center;padding:6rem clamp(1.6rem,7vw,4rem) 3rem;overflow-y:auto}
.menu[hidden]{display:none}
.menu ul{display:flex;flex-direction:column;gap:.35rem}
.menu li{opacity:0;transform:translateY(24px);animation:menuIn .5s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.06s * var(--i))}
@keyframes menuIn{to{opacity:1;transform:none}}
.menu a{font-family:var(--serif);font-size:clamp(1.9rem,7vw,2.6rem);color:var(--cream);text-decoration:none;display:inline-flex;align-items:baseline;gap:.7rem;padding:.28rem 0}
.menu a::before{content:"✦";font-size:.9rem;color:var(--mustard)}
.menu a.is-active{color:var(--mustard)}
.menu-foot{margin-top:2.4rem;display:flex;flex-direction:column;gap:1.1rem;align-items:flex-start}
.menu-note{font-family:var(--hand);font-size:1.35rem;color:rgba(255,252,245,.75);display:flex;gap:.5rem;align-items:center}
.menu-note .doodle{width:18px;height:18px;color:var(--mustard)}
.menu-doodle{position:absolute;color:rgba(226,167,46,.5)}
.menu-doodle .doodle{width:100%;height:100%}
.menu-doodle.d1{width:110px;top:12%;right:8%;animation:floaty 7s ease-in-out infinite alternate}
.menu-doodle.d2{width:44px;bottom:22%;right:16%;animation:floaty 5.5s .4s ease-in-out infinite alternate}
.menu-doodle.d3{width:40px;top:24%;right:30%;animation:floaty 6.5s .8s ease-in-out infinite alternate}
body.menu-open{overflow:hidden}

/* ---------- veil transition ---------- */
.veil{position:fixed;inset:0;z-index:100;background:var(--ink-deep);pointer-events:none;clip-path:circle(0% at calc(100% - 60px) 40px);transition:clip-path .45s cubic-bezier(.6,.05,.3,1)}
.veil.on{clip-path:circle(150% at calc(100% - 60px) 40px)}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(1.6rem,4vw,3.4rem) 0 2.2rem}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;min-height:min(76vh,760px)}
.hero-title{font-size:clamp(2.65rem,5.7vw,4.85rem);font-weight:600;margin:0 0 1.1rem}
.hero-title .u-squig{position:relative;white-space:nowrap}
.hero-title .u-squig::after{content:"";position:absolute;left:0;right:0;bottom:-.08em;height:.16em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 14' preserveAspectRatio='none'%3E%3Cpath d='M3 10c22-8 34 6 55-2s30-6 52 0 34 4 54-2 32-2 53 2' fill='none' stroke='%23E2A72E' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.hero-lede{font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--ink-60);max-width:33rem;margin-bottom:1.7rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:1.6rem}
.hero-facts{display:flex;flex-wrap:wrap;gap:.55rem 1.5rem}
.hero-facts li{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:.84rem;color:var(--ink-60)}
.hero-facts .doodle{width:16px;height:16px;color:var(--mustard)}
.hero-art{position:relative;justify-self:center;width:min(100%,480px);aspect-ratio:1/1.02}
.art-blob{position:absolute;border-radius:44% 56% 52% 48%/52% 44% 56% 48%;filter:blur(2px)}
.art-blob.b1{inset:-4% 8% 12% -6%;background:rgba(226,167,46,.3);animation:blob 14s ease-in-out infinite alternate}
.art-blob.b2{inset:22% -8% -4% 18%;background:rgba(94,127,92,.24);animation:blob 17s 1s ease-in-out infinite alternate-reverse}
.art-blob.b3{inset:-8% -4% 34% 40%;background:rgba(217,113,140,.22);animation:blob 12s .5s ease-in-out infinite alternate}
@keyframes blob{to{border-radius:56% 44% 46% 54%/46% 56% 44% 54%;transform:rotate(8deg) scale(1.06)}}
.art-frame{position:absolute;inset:6% 8%;z-index:2}
.art-frame img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:7px solid var(--cream);box-shadow:var(--shadow-2)}
.art-ring{position:absolute;inset:-9%;border:3px dashed rgba(160,50,70,.5);border-radius:50%;animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.float-cover{position:absolute;z-index:3;filter:drop-shadow(0 16px 22px rgba(20,27,49,.3))}
.float-cover img{width:100%;border-radius:6px;border:4px solid var(--cream)}
.float-cover.f1{width:26%;left:-7%;top:6%;--r:-7deg;animation:floaty 6.5s ease-in-out infinite alternate}
.float-cover.f2{width:22%;right:-6%;top:26%;--r:6deg;animation:floaty 7.5s .6s ease-in-out infinite alternate}
.float-cover.f3{width:23%;left:-3%;bottom:2%;--r:5deg;animation:floaty 8s .3s ease-in-out infinite alternate}
.float-cover img{transform:rotate(var(--r))}
.hero-doodle{position:absolute;color:var(--ink-40)}
.hero-doodle .doodle{width:100%;height:100%}
.hero-doodle.hd1{width:38px;left:2%;top:-2%;color:var(--mustard);animation:floaty 5s ease-in-out infinite alternate}
.hero-doodle.hd2{width:88px;right:0;top:-4%;color:var(--ink-40);animation:floaty 8s ease-in-out infinite alternate}
.hero-doodle.hd3{width:30px;right:6%;bottom:6%;color:var(--berry);animation:floaty 6s .7s ease-in-out infinite alternate}
.hero-doodle.hd4{width:34px;left:8%;bottom:-4%;color:var(--green);animation:floaty 7s .2s ease-in-out infinite alternate}
.hero-doodle.hd5{width:46px;right:-2%;bottom:26%;color:var(--ink-40);animation:floaty 6.4s 1s ease-in-out infinite alternate}
.hero-note{position:absolute;right:-1%;bottom:-8%;z-index:4;max-width:13rem;font-family:var(--hand);font-size:1.3rem;line-height:1.2;color:var(--berry);transform:rotate(-5deg);display:flex;align-items:flex-end;gap:.3rem}
.hero-note .doodle{width:34px;height:30px;flex:none}
.scroll-hint{display:flex;justify-content:center;align-items:center;gap:.5rem;font-family:var(--hand);font-size:1.3rem;color:var(--ink-40);margin:1rem 0 0}
.scroll-hint .doodle{width:26px;height:24px;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(6px)}}
@keyframes floaty{from{transform:translateY(0) rotate(var(--r,0deg))}to{transform:translateY(-13px) rotate(calc(var(--r,0deg) + 2.5deg))}}

/* ---------- marquee ---------- */
.marquee{background:var(--ink-deep);color:var(--cream);padding:.95rem 0;overflow:hidden}
.marquee-track{display:flex;gap:2.6rem;width:max-content;animation:slide 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{display:flex;align-items:center;gap:.7rem;font-weight:800;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:rgba(255,252,245,.9)}
.marquee-track .doodle{width:14px;height:14px;color:var(--mustard)}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.section{padding:clamp(3.4rem,8vw,6.4rem) 0}
.sec-head{margin-bottom:clamp(1.8rem,4vw,3rem)}
.sec-head h2{font-size:clamp(1.95rem,4vw,3rem);margin:0 0 .35rem}
.sec-head.row{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}

/* shelf */
.shelf-sec{background:linear-gradient(var(--paper),var(--paper2) 70%,var(--paper))}
.shelf-wrap{margin-top:1rem}
.shelf{display:flex;gap:clamp(1rem,3vw,2.1rem);overflow-x:auto;padding:2.2rem clamp(1.15rem,4vw,2.5rem) 1.4rem;scroll-snap-type:x proximity;scrollbar-width:thin}
.shelf li{flex:none;scroll-snap-align:center}
.shelf a{display:block;text-decoration:none}
.shelf img{height:clamp(150px,21vw,215px);width:auto;border-radius:5px 7px 7px 5px;border:1px solid rgba(20,27,49,.25);box-shadow:0 20px 30px -14px rgba(20,27,49,.45);transition:transform .35s cubic-bezier(.2,.7,.3,1.3)}
.shelf a:hover img,.shelf a:focus-visible img{transform:translateY(-14px) rotate(-2.5deg) scale(1.04)}
.shelf-edge{height:14px;margin:0 clamp(1.15rem,4vw,2.5rem);border-radius:8px;background:linear-gradient(var(--ink),var(--ink-deep));box-shadow:0 10px 18px -8px rgba(20,27,49,.5)}

/* book cards */
.feat-grid,.books-grid{display:grid;gap:clamp(1.4rem,3vw,2.2rem)}
.feat-grid{grid-template-columns:repeat(2,1fr)}
@media (min-width:1080px){.feat-grid{grid-template-columns:repeat(4,1fr)}}
.books-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.book-card{display:flex;flex-direction:column;background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .35s cubic-bezier(.2,.7,.3,1.2),box-shadow .35s;transform-style:preserve-3d}
.book-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-2)}
.bc-cover{display:block;padding:2.1rem 1.6rem 1.2rem;background:radial-gradient(120% 90% at 50% 0%,var(--tint,rgba(226,167,46,.18)),transparent 70%)}
.ac-berry{--tint:rgba(160,50,70,.14)}
.ac-mustard{--tint:rgba(226,167,46,.2)}
.ac-green{--tint:rgba(94,127,92,.16)}
.ac-ink{--tint:rgba(29,39,66,.1)}
.ac-rose{--tint:rgba(217,113,140,.16)}
.bc-cover img{margin:0 auto;max-height:250px;width:auto;max-width:100%;border-radius:4px 6px 6px 4px;box-shadow:0 18px 28px -12px rgba(20,27,49,.5);transition:transform .4s cubic-bezier(.2,.7,.3,1.3)}
.book-card:hover .bc-cover img{transform:translateY(-8px) rotate(-1.6deg)}
.bc-body{display:flex;flex-direction:column;gap:.6rem;flex:1;padding:.4rem 1.5rem 1.7rem}
.bc-meta{display:flex;flex-wrap:wrap;gap:.45rem}
.bc-title{font-size:1.42rem;margin:0}
.bc-title a{color:var(--ink);text-decoration:none}
.bc-title a:hover{color:var(--berry);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.bc-series{font-size:.8rem;font-style:italic;color:var(--ink-60);margin:-.2rem 0 0}
.bc-blurb{font-size:.95rem;color:var(--ink-60);margin:0}
.card-award{display:flex;gap:.45rem;align-items:center;font-weight:800;font-size:.8rem;color:var(--berry-deep);margin:.2rem 0 0}
.card-award .doodle{width:15px;height:15px;color:var(--mustard);flex:none}
.card-quote{margin:.3rem 0 0;padding-left:.95rem;border-left:3px solid var(--mustard);font-family:var(--serif);font-style:italic;font-size:1rem;line-height:1.45;color:var(--ink)}
.card-quote cite{display:block;margin-top:.45rem;font-family:var(--sans);font-style:normal;font-weight:800;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60)}
.book-card .bc-link{margin-top:1rem}

/* about teaser */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.4rem,6vw,5rem);align-items:center}
.about-art{position:relative}
.about-art img{border-radius:var(--r-lg);transform:rotate(-2deg);box-shadow:var(--shadow-2);border:6px solid var(--cream)}
.about-pin{position:absolute;top:-22px;right:-10px;width:54px;height:54px;color:var(--berry);background:var(--mustard);border-radius:50%;display:grid;place-items:center;box-shadow:var(--shadow-1);transform:rotate(12deg)}
.about-pin .doodle{width:26px;height:26px}
.about-cap{font-family:var(--hand);font-size:1.3rem;color:var(--ink-60);margin-top:1.1rem;transform:rotate(-1.5deg)}
.about-copy h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.about-steps{margin:1.4rem 0 1.8rem;display:grid;gap:.75rem;border-left:2px dashed var(--line);padding-left:1.4rem}
.about-steps li{position:relative;font-size:.98rem;color:var(--ink-60)}
.about-steps li::before{content:"";position:absolute;left:calc(-1.4rem - 5px);top:.5em;width:8px;height:8px;border-radius:50%;background:var(--berry)}
.about-steps span{display:block;font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--berry-deep)}

/* praise */
.praise-sec{background:var(--ink-deep);color:var(--cream);position:relative;overflow:clip}
.praise-sec::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(226,167,46,.14) 1.4px,transparent 1.6px);background-size:34px 34px}
.praise-sec .wrap{position:relative}
.praise-sec h2{font-size:clamp(1.95rem,4vw,3rem)}
.spotlight{position:relative;min-height:15rem;margin-top:1.4rem}
.spot-q{margin:0;transition:opacity .5s}
.spot-q[hidden]{display:none}
.spot-q.enter{animation:spotIn .55s cubic-bezier(.2,.7,.2,1)}
@keyframes spotIn{from{opacity:0;transform:translateY(18px)}}
.spot-q blockquote{margin:0 0 1.1rem;font-family:var(--serif);font-style:italic;font-size:clamp(1.45rem,3.3vw,2.5rem);line-height:1.28;max-width:44rem}
.spot-q figcaption{font-weight:800;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mustard)}
.spot-q figcaption a{color:var(--mustard)}
.spot-nav{display:flex;gap:.7rem;margin-top:1.6rem}
.spot-btn{width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,252,245,.5);background:transparent;color:var(--cream);font-size:1.1rem;cursor:pointer;transition:background .2s,transform .2s}
.spot-btn:hover{background:rgba(255,252,245,.14);transform:scale(1.06)}

/* visits */
.visits-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.4rem,6vw,5rem);align-items:center}
.visits-quote{margin:1.4rem 0;padding-left:1.2rem;border-left:4px solid var(--berry);font-family:var(--serif);font-style:italic;font-size:1.12rem;line-height:1.5}
.visits-quote cite{display:block;margin-top:.6rem;font-family:var(--sans);font-style:normal;font-weight:800;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60)}
.visits-art{position:relative;padding-bottom:3rem}
.visits-art>img:first-child{border-radius:var(--r-lg);transform:rotate(1.4deg);box-shadow:var(--shadow-2);border:6px solid var(--cream)}
.visits-small{position:absolute;width:46%;left:-4%;bottom:0;border-radius:16px;border:6px solid var(--cream);box-shadow:var(--shadow-2);transform:rotate(-4deg)}
.visits-doodle{position:absolute;top:-24px;right:4%;width:52px;height:52px;color:var(--mustard)}
.visits-doodle .doodle{width:100%;height:100%;animation:spin 24s linear infinite}

/* news */
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(1.4rem,3vw,2rem)}
.post-card{display:flex;flex-direction:column;background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .3s,box-shadow .3s}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-2)}
.pc-fig{aspect-ratio:16/10;overflow:hidden;background:var(--paper2)}
.pc-fig img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.post-card:hover .pc-fig img{transform:scale(1.05)}
.pc-fig-doodle{display:grid;place-items:center;color:var(--ink-40);position:relative}
.pc-fig-doodle .doodle:first-child{width:64px;height:50px}
.pc-fig-doodle .doodle:last-child{position:absolute;width:26px;height:26px;color:var(--mustard);transform:translate(46px,-26px)}
.pc-body{display:flex;flex-direction:column;gap:.55rem;flex:1;padding:1.3rem 1.4rem 1.5rem}
.pc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0}
.pc-meta time{font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60)}
.pc-title{font-size:1.28rem;margin:0}
.pc-title a{color:var(--ink);text-decoration:none}
.pc-title a:hover{color:var(--berry);text-decoration:underline;text-underline-offset:4px}
.pc-ex{font-size:.92rem;color:var(--ink-60);margin:0}
.post-card .bc-link{margin-top:auto;padding-top:.6rem}
.news-featured{margin-bottom:2rem}
.post-card.featured{display:grid;grid-template-columns:1.05fr .95fr}
.post-card.featured .pc-fig{aspect-ratio:auto;height:100%;min-height:280px}
.post-card.featured .pc-title{font-size:clamp(1.5rem,2.6vw,2.1rem)}
.post-card.featured .pc-body{padding:2rem 2.2rem}
.is-hidden{display:none!important}

/* cta band */
.cta-band{background:var(--berry);color:#FFF7F3;position:relative;overflow:clip}
.cta-band.small{padding:clamp(2.6rem,6vw,4.4rem) 0}
.cta-in{position:relative;text-align:center;max-width:46rem;margin-inline:auto}
.cta-in h2{font-size:clamp(2rem,4.4vw,3.3rem)}
.cta-in h2 em{color:var(--mustard)}
.cta-in p{color:rgba(255,247,243,.88);font-size:1.06rem}
.cta-in .hero-ctas{justify-content:center;margin:1.6rem 0 0}
.cta-doodle{position:absolute;color:rgba(255,247,243,.28)}
.cta-doodle .doodle{width:100%;height:100%}
.cta-doodle.c1{width:60px;left:6%;top:18%;animation:floaty 6s ease-in-out infinite alternate}
.cta-doodle.c2{width:70px;right:7%;top:24%;animation:floaty 7s .5s ease-in-out infinite alternate}
.cta-doodle.c3{width:44px;left:14%;bottom:14%;animation:floaty 8s .2s ease-in-out infinite alternate}

/* ---------- chapter heads (inner pages) ---------- */
.chapter{position:relative;padding:clamp(6.6rem,13vw,9.5rem) 0 .5rem;overflow:clip}
main>.chapter+.section{padding-top:clamp(2rem,4.5vw,3.2rem)}
.crumbs{margin-bottom:1.4rem}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;font-weight:700;color:var(--ink-60)}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--ink-40)}
.crumbs a{color:var(--ink-60);text-decoration:none}
.crumbs a:hover{color:var(--berry);text-decoration:underline}
.chapter-title{font-size:clamp(2.45rem,5.6vw,4.3rem);max-width:20ch}
.chapter-lede{margin-top:.4rem}
.ch-doodle{position:absolute;color:var(--ink-40)}
.ch-doodle .doodle{width:100%;height:100%}
.ch-doodle.c1{width:40px;right:12%;top:24%;color:var(--mustard);animation:floaty 6s ease-in-out infinite alternate}
.ch-doodle.c2{width:96px;right:4%;top:44%;animation:floaty 8s .4s ease-in-out infinite alternate}
.ch-doodle.c3{width:30px;right:26%;top:60%;color:var(--berry);animation:floaty 7s .8s ease-in-out infinite alternate}
.ch-doodle.c4{width:44px;right:20%;top:30%;animation:floaty 6.6s .2s ease-in-out infinite alternate}

/* ---------- book detail ---------- */
.bd-tagline{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--berry)}
.bd-sec{padding-top:1rem}
.bd-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.bd-cover-col{position:sticky;top:7rem}
.bd-book{perspective:900px}
.bd-book img{width:100%;max-width:340px;margin-inline:auto;border-radius:6px 10px 10px 6px;box-shadow:-16px 26px 44px -18px rgba(20,27,49,.55);transform:rotateY(-6deg)}
.bd-buy{margin-top:1.8rem;text-align:center}
.bd-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem}
.bd-blurb{font-size:1.12rem;line-height:1.7}
.bd-awards{margin:1.2rem 0;display:grid;gap:.5rem}
.bd-awards li{display:flex;gap:.55rem;align-items:center;font-weight:800;color:var(--berry-deep)}
.bd-awards .doodle{width:17px;height:17px;color:var(--mustard)}
.bd-extra{margin:0 0 1.4rem;display:grid;gap:.5rem}
.bd-extra li{display:flex;gap:.55rem;align-items:flex-start;color:var(--ink-60);font-size:.98rem}
.bd-extra .doodle{width:15px;height:15px;color:var(--green);margin-top:.35em;flex:none}
.bd-quotes h2{font-size:1.35rem;margin-bottom:.9rem}
.dq{margin:0 0 1.1rem;padding-left:1.1rem;border-left:3px solid var(--mustard)}
.dq blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:1.12rem;line-height:1.5}
.dq figcaption{margin-top:.45rem;font-weight:800;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60)}
.dq a{text-transform:none;letter-spacing:0;font-size:.8rem}
.bd-gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:1.6rem}
.bd-gallery img{border-radius:12px;border:5px solid var(--cream);box-shadow:var(--shadow-1)}
.bd-gallery figcaption{margin-top:.6rem;font-size:.82rem;font-weight:700;color:var(--ink-60)}
.bd-video{margin-top:1.8rem}
.bd-video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:16px;box-shadow:var(--shadow-1)}
.bd-video-cap{margin-top:.6rem;font-size:.82rem;color:var(--ink-60)}

/* ---------- biography ---------- */
.bio-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.timeline{position:relative;display:grid;gap:2.8rem;padding-left:.4rem}
.timeline::before{content:"";position:absolute;left:14px;top:8px;bottom:8px;border-left:2.5px dashed rgba(160,50,70,.4)}
.tl-item{position:relative;padding-left:3.6rem}
.tl-dot{position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--paper);border:2.5px solid var(--berry);display:grid;place-items:center;color:var(--berry)}
.tl-dot .doodle{width:15px;height:15px}
.tl-ch{font-family:var(--hand);font-size:1.3rem;color:var(--berry);margin:0 0 .1rem}
.tl-item h2{font-size:clamp(1.4rem,2.6vw,1.85rem);margin-bottom:.4rem}
.tl-item p{color:var(--ink-60)}
.tl-note{font-family:var(--hand);font-size:1.25rem;color:var(--green-deep);display:flex;gap:.4rem;align-items:center}
.tl-note .doodle{width:26px;height:22px}
.bio-side{position:sticky;top:6.5rem;display:grid;gap:1.8rem}
.bio-portrait img{border-radius:50%;border:6px solid var(--cream);box-shadow:var(--shadow-1);max-width:280px;margin-inline:auto}
.bio-portrait figcaption,.bio-photo figcaption{margin-top:.7rem;font-size:.78rem;color:var(--ink-60);text-align:center}
.bio-facts{background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-md);padding:1.6rem 1.7rem;box-shadow:var(--shadow-1)}
.bio-facts h2{font-size:1.3rem}
.bio-facts ul{display:grid;gap:.7rem}
.bio-facts li{font-size:.94rem;color:var(--ink-60)}
.bio-facts span{display:block;font-weight:800;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--berry-deep)}
.bio-photo img{border-radius:16px;border:5px solid var(--cream);box-shadow:var(--shadow-1)}

/* ---------- school visits ---------- */
.sv-hero-art{padding-top:0}
.sv-collage{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:auto auto;gap:1.2rem;position:relative}
.sv-collage figure{margin:0}
.sv-collage img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-lg);border:6px solid var(--cream);box-shadow:var(--shadow-1)}
.sv-f1{grid-row:1/3}
.sv-f1 img{min-height:340px}
.sv-f2 img{aspect-ratio:4/3;transform:rotate(1.6deg)}
.sv-f3 img{aspect-ratio:4/3;transform:rotate(-1.8deg)}
.sv-doodle{position:absolute;color:var(--mustard)}
.sv-doodle .doodle{width:100%;height:100%}
.sv-doodle.s1{width:46px;top:-20px;left:44%;animation:floaty 6s ease-in-out infinite alternate}
.sv-doodle.s2{width:44px;bottom:-14px;right:6%;color:var(--ink-40);animation:floaty 7s .4s ease-in-out infinite alternate}
.offers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.5rem}
.offer{background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-md);padding:1.8rem 1.7rem;box-shadow:var(--shadow-1);transition:transform .3s,box-shadow .3s}
.offer:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:var(--shadow-2)}
.offer-ic{width:52px;height:52px;border-radius:50%;background:var(--mustard-22);color:var(--berry-deep);display:grid;place-items:center;margin-bottom:1rem}
.offer-ic .doodle{width:26px;height:26px}
.offer h2{font-size:1.28rem}
.offer p{font-size:.95rem;color:var(--ink-60);margin:0}
.sv-quotes{background:var(--green-deep);color:#F4F7F1;position:relative;overflow:clip}
.sv-quotes::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,252,245,.1) 1.4px,transparent 1.6px);background-size:30px 30px}
.sv-quotes .wrap{position:relative}
.sv-quotes h2 em{color:var(--mustard)}
.sq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.6rem;margin-top:1rem}
.sq-card{margin:0;background:rgba(255,252,245,.08);border:1.5px solid rgba(255,252,245,.25);border-radius:var(--r-md);padding:2rem 1.9rem;backdrop-filter:blur(4px)}
.sq-card blockquote{margin:0 0 1.2rem;font-family:var(--serif);font-style:italic;font-size:1.14rem;line-height:1.55}
.sq-card figcaption strong{display:block;font-size:.95rem}
.sq-card figcaption span{font-size:.82rem;color:rgba(244,247,241,.75)}
.sv-where-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.4rem,5vw,4rem);align-items:center}
.where-list{display:grid;gap:.85rem;margin-top:1.2rem}
.where-list li{position:relative;padding-left:1.9rem;font-weight:700;font-size:1.02rem}
.where-list li::before{content:"✦";position:absolute;left:0;top:0;color:var(--mustard);font-size:1.05rem}
.sv-cta{background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.8rem,4vw,2.8rem);box-shadow:var(--shadow-2)}
.sv-cta h2{font-size:clamp(1.7rem,3vw,2.3rem)}
.sv-cta .hero-ctas{margin:1.4rem 0 .4rem}
.sv-small{font-size:.9rem;color:var(--ink-60)}

/* ---------- reviews ---------- */
.rq-feat-sec{padding-top:0}
.rq-feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.6rem;align-items:start}
.rq-feat{margin:0;background:var(--ink-deep);color:var(--cream);border-radius:var(--r-lg);padding:2.3rem 2.2rem;position:relative;overflow:clip}
.rq-feat::before{content:"“";position:absolute;top:-1.4rem;right:.8rem;font-family:var(--serif);font-size:9rem;color:rgba(226,167,46,.25);line-height:1}
.rq-feat blockquote{margin:0 0 1.2rem;font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.3vw,1.75rem);line-height:1.32}
.rq-feat figcaption{font-weight:800;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mustard)}
.rq-feat figcaption a{color:var(--mustard)}
.rq-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.2rem}
.chip-btn{border:2px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;padding:.5rem 1.15rem;font-weight:800;font-size:.82rem;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.chip-btn:hover{transform:translateY(-2px)}
.chip-btn.is-on{background:var(--ink);color:var(--cream)}
.rq-masonry{columns:3;column-gap:1.6rem}
.rq-card{break-inside:avoid;margin:0 0 1.6rem;background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-md);padding:1.6rem 1.5rem;box-shadow:var(--shadow-1);transition:transform .3s,box-shadow .3s}
.rq-card:hover{transform:translateY(-5px) rotate(-.4deg);box-shadow:var(--shadow-2)}
.rq-book{display:block;margin-bottom:.8rem;font-weight:800;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--berry);text-decoration:none}
.rq-book:hover{text-decoration:underline}
.rq-book-gen{color:var(--green-deep)}
.rq-card blockquote{margin:0;font-family:var(--serif);font-size:1.06rem;line-height:1.5}
.rq-card figcaption{margin-top:.9rem;font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60)}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(2rem,5vw,3.6rem);align-items:start}
.c-form{background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.7rem,4vw,2.7rem);box-shadow:var(--shadow-2)}
.c-form h2{font-size:1.7rem}
.c-note{font-size:.9rem;color:var(--ink-60)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.f-field{margin-bottom:1.1rem}
.f-field label{display:block;font-weight:800;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);margin-bottom:.4rem}
.f-field label span{text-transform:none;letter-spacing:0;font-weight:600}
.f-field input,.f-field select,.f-field textarea{width:100%;padding:.85rem 1.05rem;border-radius:12px;border:2px solid var(--line);background:var(--paper);font:inherit;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.f-field textarea{resize:vertical;min-height:130px}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{outline:none;border-color:var(--berry);box-shadow:0 0 0 4px var(--berry-12)}
.f-status{margin-top:1rem;font-weight:700;font-size:.92rem;color:var(--green-deep)}
.c-side{display:grid;gap:1.4rem}
.c-card{background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-md);padding:1.7rem 1.7rem;box-shadow:var(--shadow-1)}
.c-card h2{font-size:1.25rem}
.c-card p{font-size:.96rem;color:var(--ink-60)}
.c-big a{font-family:var(--serif);font-size:1.22rem;color:var(--berry)}
.c-small{font-size:.86rem!important}
.foot-social{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}
.foot-social a{padding:.45rem 1rem;border:1.5px solid rgba(255,252,245,.4);border-radius:999px;color:var(--cream);text-decoration:none;font-weight:700;font-size:.85rem;transition:background .2s}
.foot-social a:hover{background:rgba(255,252,245,.12)}
.foot-social.dark a{color:var(--ink);border-color:var(--line)}
.foot-social.dark a:hover{background:var(--paper2)}

/* ---------- post page ---------- */
.progress{position:fixed;top:0;left:0;height:4px;width:0;background:var(--berry);z-index:80}
.post-head{padding-top:clamp(6.4rem,12vw,9rem)}
.post-title{font-size:clamp(2.1rem,5vw,3.5rem);max-width:24ch}
.post-body{max-width:46.5rem;margin:2rem auto 0;font-size:1.07rem;line-height:1.78}
.post-body p{margin-bottom:1.25rem}
.post-body img{border-radius:16px;border:5px solid var(--cream);box-shadow:var(--shadow-1);margin:1.6rem auto}
.post-body iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:16px;box-shadow:var(--shadow-1)}
.post-body a{font-weight:700}
.post-body ul{list-style:disc;padding-left:1.4rem;margin-bottom:1.25rem}
.post-nav{display:flex;justify-content:space-between;gap:1.2rem;margin:3.2rem auto 0;max-width:46.5rem}
.pn{flex:1;background:var(--cream);border:1.5px solid var(--line);border-radius:var(--r-md);padding:1rem 1.3rem;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.02rem;transition:transform .25s,box-shadow .25s}
.pn:hover{transform:translateY(-4px);box-shadow:var(--shadow-1)}
.pn.next{text-align:right}
.pn span{display:block;font-family:var(--sans);font-weight:800;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);margin-bottom:.25rem}
.prose{max-width:44rem;font-size:1.06rem;line-height:1.8}
.prose p{margin-bottom:1.2rem}

/* ---------- footer ---------- */
.site-foot{background:var(--ink-deep);color:var(--cream);padding:clamp(3rem,7vw,4.6rem) 0 2rem;margin-top:0}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1.1fr 1.4fr;gap:clamp(2rem,4vw,3.2rem)}
.foot-brand img{width:min(100%,330px);margin-bottom:1.1rem}
.foot-brand p{font-size:.95rem;color:rgba(255,252,245,.72)}
.foot-col h3{font-family:var(--sans);font-weight:800;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mustard);margin-bottom:1rem}
.foot-col ul{display:grid;gap:.55rem}
.foot-col a{color:rgba(255,252,245,.82);text-decoration:none;font-size:.95rem}
.foot-col a:hover{color:var(--mustard);text-decoration:underline;text-underline-offset:4px}
.foot-cta p{font-size:.95rem;color:rgba(255,252,245,.82)}
.foot-cta .btn{margin-top:.8rem}
.foot-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid rgba(255,252,245,.16);margin-top:clamp(2.2rem,5vw,3.4rem);padding-top:1.5rem}
.foot-base p{margin:0;font-size:.8rem;color:rgba(255,252,245,.55)}
.foot-base a{color:rgba(255,252,245,.7)}
.foot-credit a{display:inline-flex;align-items:center;gap:.4rem;color:var(--mustard);font-weight:800;text-decoration:none}
.foot-credit a:hover{text-decoration:underline;text-underline-offset:4px}
.foot-credit .credit-star{width:12px;height:12px;transition:transform .35s}
.foot-credit a:hover .credit-star{transform:rotate(90deg) scale(1.25)}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s ease var(--d,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
[data-reveal].is-in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .rq-masonry{columns:2}
  .foot-grid{grid-template-columns:1.6fr 1fr 1fr}
  .foot-cta{grid-column:1/-1}
}
@media (max-width:960px){
  .nav,.head-cta{display:none}
  .burger{display:block;margin-left:auto}
  .hero-grid{grid-template-columns:1fr;min-height:0;gap:3.4rem}
  .hero-art{width:min(100%,440px)}
  .hero-note{right:0;bottom:-10%}
  .about-grid,.visits-grid,.bio-grid,.bd-grid,.sv-where-grid,.contact-grid{grid-template-columns:1fr}
  .bio-side{position:static;grid-template-columns:1fr 1fr;align-items:start}
  .bio-portrait{grid-column:1/-1}
  .bd-cover-col{position:static}
  .bd-book img{max-width:290px}
  .post-card.featured{grid-template-columns:1fr}
  .post-card.featured .pc-fig{min-height:0;aspect-ratio:16/9}
  .sv-collage{grid-template-columns:1fr 1fr}
  .sv-f1{grid-column:1/-1;grid-row:auto}
  .sv-f1 img{min-height:0;aspect-ratio:16/9}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .br-lg{display:none}
  .hero-title{font-size:clamp(2.35rem,9vw,3rem)}
  .hero-facts{flex-direction:column;gap:.5rem}
  .float-cover.f1{left:-2%}
  .float-cover.f2{right:-2%}
  .rq-masonry{columns:1}
  .f-row{grid-template-columns:1fr}
  .post-nav{flex-direction:column}
  .pn.next{text-align:left}
  .bio-side{grid-template-columns:1fr}
  .bd-gallery{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .sec-head.row{align-items:flex-start;flex-direction:column;gap:1rem}
  .shelf img{height:150px}
  .menu a{font-size:1.8rem}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  .marquee-track{animation:none;transform:none}
  .marquee{overflow-x:auto}
  .veil{display:none}
}
