/* The Side Door — design tokens from the book cover + Wooden Owl logo */
:root{
  --cream:#FFFBF1;--paper:#FBF3DF;--butter:#F9E6A8;--glow:#FFF4CC;
  --ink:#33272E;--plum:#4E3446;--mauve:#76596B;
  --sage:#7C8C5E;--sage-deep:#4D5F3E;--rose:#EFB09A;--rose-deep:#96442F;--lavender:#9D90BC;
  --owl:#925C2B;--blush:#E4B79F;--night:#2C2130;--night-text:#F6E9C4;
  --line:#E6DCC4;--ease:cubic-bezier(.22,1,.36,1);--hh:68px;
  --serif:"Lora",Georgia,"Times New Roman",serif;--sans:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 12px)}
body{margin:0;background:var(--cream);color:var(--ink);font:clamp(1.125rem,1.06rem + .3vw,1.22rem)/1.7 var(--serif);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:var(--plum)}a:hover{color:var(--sage-deep)}
:focus-visible{outline:3px solid var(--sage-deep);outline-offset:3px;border-radius:4px}
.poem-night :focus-visible,.site-footer :focus-visible{outline-color:var(--butter)}
h1,h2,h3{font-family:var(--serif);color:var(--plum);line-height:1.15;margin:0 0 .5em;font-weight:600}
h2{font-size:clamp(2rem,1.4rem + 2.4vw,3.25rem)}h3{font-size:1.5rem}
p{margin:0 0 1.1em}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
.narrow{width:min(760px,100% - 40px)}
.center{text-align:center}
.small{font-size:.95rem;color:var(--mauve)}.small a{color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--plum);color:#fff;padding:10px 16px;border-radius:8px;z-index:100;transition:top .2s}
.skip:focus{top:12px}
.eyebrow{font:800 .78rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--plum);margin:0 0 1rem;opacity:.8}
.section{padding:clamp(48px,7vw,96px) 0}
.text-link{font:700 1rem var(--sans);text-decoration:none;border-bottom:2px solid var(--rose);padding-bottom:2px}
.text-link:hover{border-color:var(--sage-deep)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font:800 .95rem/1 var(--sans);letter-spacing:.02em;text-decoration:none;background:var(--sage-deep);color:var(--cream);border:2px solid var(--sage-deep);border-radius:999px;padding:.95em 1.6em;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s}
.btn:hover{color:var(--cream);background:#3f4f32;transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(77,95,62,.7)}
.btn-sm{padding:.7em 1.2em;font-size:.85rem}
.btn-ghost{background:transparent;color:var(--plum);border-color:var(--plum)}
.btn-ghost:hover{background:var(--plum);color:var(--cream);box-shadow:none}
.btn-light{background:var(--butter);color:var(--night);border-color:var(--butter)}
.btn-light:hover{background:#fff1c4;color:var(--night)}
.door-icon{overflow:visible}.door-leaf{transform-origin:1px 8px;transition:transform .3s var(--ease)}
.btn:hover .door-leaf,.btn:focus-visible .door-leaf{transform:scaleX(.25)}

/* Ribbon + header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,251,241,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:background .3s,border-color .3s,box-shadow .3s}
body.home .site-header:not(.scrolled){background:transparent;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.header-inner{width:min(1240px,100% - 32px);margin-inline:auto;height:var(--hh);display:flex;align-items:center;gap:20px}
.wordmark{font:600 1.35rem var(--serif);color:var(--plum);text-decoration:none;white-space:nowrap}
#site-nav{margin-left:auto}
#site-nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
#site-nav a{white-space:nowrap;display:block;font:700 .88rem var(--sans);text-decoration:none;color:var(--ink);padding:.6em .8em;border-radius:999px;position:relative}
#site-nav a::after{content:"";position:absolute;left:.8em;right:.8em;bottom:.3em;height:2px;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
#site-nav a:hover::after,#site-nav a[aria-current]::after{transform:scaleX(1)}
.menu-btn{display:none;margin-left:auto;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.menu-btn span:not(.sr){position:absolute;left:10px;right:10px;height:2px;background:var(--plum);border-radius:2px;transition:transform .3s var(--ease),top .3s var(--ease)}
.menu-btn span:nth-child(1){top:17px}.menu-btn span:nth-child(2){top:25px}
.nav-open .menu-btn span:nth-child(1){top:21px;transform:rotate(45deg)}.nav-open .menu-btn span:nth-child(2){top:21px;transform:rotate(-45deg)}
@media(max-width:1120px){
  .menu-btn{display:block}.header-cta{display:none}
  #site-nav{position:fixed;inset:var(--hh) 0 0 0;background:var(--cream);margin:0;padding:24px 20px;visibility:hidden;opacity:0;transition:opacity .3s,visibility .3s;overflow:auto}
  .nav-open #site-nav{visibility:visible;opacity:1}
  #site-nav ul{flex-direction:column;gap:6px}
  #site-nav a{font:600 1.7rem var(--serif);padding:.4em 0}
  #site-nav li{opacity:0;transform:translateY(10px)}
  .nav-open #site-nav li{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--n,0)*40ms + 80ms)}
}

/* Hero: the open door */
body.home main{margin-top:calc(var(--hh) * -1)}
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--butter) 0%,#FCF0C8 55%,var(--cream) 100%);padding:calc(var(--hh) + clamp(32px,6vw,72px)) 0 clamp(56px,8vw,110px)}
.hero-glow{position:absolute;right:-10%;top:5%;width:70vmin;height:70vmin;background:radial-gradient(closest-side,#FFFBE3,rgba(255,244,204,0));opacity:.9;pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,72px);align-items:center}
.hero h1{font-size:clamp(3.2rem,1.8rem + 6vw,7rem);line-height:1;letter-spacing:-.015em;color:var(--plum);margin-bottom:.25em}
.subtitle{font:italic 500 clamp(1.3rem,1.1rem + 1vw,1.8rem)/1.35 var(--serif);color:var(--plum);max-width:24em}
.byline{font:600 1rem/1.5 var(--sans);color:var(--ink);max-width:30em;opacity:.85}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:1.6rem 0 1rem}
.launch{font:800 .8rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep)}
.hero-art{position:relative;aspect-ratio:540/840;max-width:520px;width:100%;margin-inline:auto;perspective:1000px}
.door-svg{position:absolute;left:-4%;top:0;width:84%;height:auto}
.door-panel{transform-origin:172px 0}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr}.hero-art{max-width:min(250px,64vw);margin-top:8px}.hero{padding-top:calc(var(--hh) + 22px)}
  .hero-copy{text-align:center}.subtitle,.byline,.hero-line{margin-inline:auto}.hero-actions{justify-content:center}.featured{text-align:left}
}

/* Threshold statement */
.threshold{padding:clamp(72px,10vw,150px) 0 clamp(40px,6vw,80px)}
.threshold h2{font-size:clamp(1.9rem,1.2rem + 3vw,3.4rem);line-height:1.2;font-weight:500;text-align:center;margin-bottom:1em}
.threshold-sub{text-align:center;font:600 1rem/1.6 var(--sans);color:var(--ink);opacity:.8;max-width:34em;margin-inline:auto}

/* Praise */
.praise{padding:clamp(40px,6vw,80px) 0 clamp(56px,8vw,110px)}
.foreword{margin:0 auto clamp(40px,6vw,72px);max-width:880px;text-align:center}
.foreword::before,.praise-card::before{content:"";display:block;width:48px;height:3px;background:var(--sage);border-radius:3px;margin:0 auto 1.4rem}
.foreword blockquote{margin:0 0 1.2rem;font:italic 400 clamp(1.5rem,1rem + 2vw,2.4rem)/1.3 var(--serif);color:var(--plum)}
figcaption strong{display:block;font:800 .9rem var(--sans);letter-spacing:.02em;color:var(--ink)}
figcaption span{display:block;font:600 .85rem/1.4 var(--sans);color:var(--ink);opacity:.7;margin-top:2px}
.praise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin-bottom:2.4rem}
.praise-card{margin:0;background:var(--paper);border-radius:28px 28px 14px 14px;padding:30px 28px 26px;border:1px solid var(--line)}
.praise-card::before{margin:0 0 1.1rem}
.praise-card blockquote{margin:0 0 1.2rem;font:italic 400 1.12rem/1.55 var(--serif)}

/* Is / isn't */
.isisnt{background:var(--paper);padding:clamp(48px,7vw,96px) 0}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.ticks,.crosses{list-style:none;margin:0;padding:0}
.ticks li,.crosses li{position:relative;padding:.55em 0 .55em 2.2em;border-bottom:1px solid var(--line)}
.ticks li::before,.crosses li::before{position:absolute;left:0;top:.62em;width:1.4em;height:1.4em;border-radius:50%;font:800 .8rem/1.4em var(--sans);text-align:center}
.ticks li::before{content:"✓";background:var(--sage);color:#fff}
.crosses li::before{content:"×";background:var(--rose);color:var(--plum);font-size:1rem}
@media(max-width:760px){.two-col{grid-template-columns:1fr}}

/* Poem (night) */
.poem-night{position:relative;overflow:hidden;background:var(--night);color:var(--night-text);padding:clamp(64px,9vw,128px) 0}
.night-glow{position:absolute;left:-10%;top:-30%;width:80vmin;height:80vmin;background:radial-gradient(closest-side,rgba(249,230,168,.18),transparent);pointer-events:none}
.poem-night .wrap{position:relative}
.poem-night .eyebrow{color:var(--butter)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2.2rem}
.tabs button{font:800 .8rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--night-text);background:transparent;border:1px solid rgba(246,233,196,.35);border-radius:999px;padding:.7em 1.3em;cursor:pointer;transition:all .3s var(--ease)}
.tabs button:hover{border-color:var(--butter)}
.tabs button[aria-selected="true"]{background:var(--butter);color:var(--night);border-color:var(--butter)}
.poem-panel h3{font:800 .9rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--butter);margin-bottom:1.4rem}
.poem{max-width:36ch}
.stanza{font:400 clamp(1.2rem,1.05rem + .7vw,1.4rem)/1.65 var(--serif);margin:0 0 1.4em;color:var(--night-text)}
.line{display:block;padding-left:1.6em;text-indent:-1.6em}
.poem-credit{font:italic 400 1rem var(--serif);color:var(--night-text);opacity:.7}
.poem-note{font:600 .9rem var(--sans);opacity:.75;margin:2rem 0 1.2rem}

/* Mantra */
.mantra{padding:clamp(72px,10vw,140px) 0}
.mantra-1,.mantra-2{font:italic 500 clamp(2.4rem,1.4rem + 5vw,5.2rem)/1.1 var(--serif);color:var(--plum);margin:0}
.mantra-2{display:inline-block;position:relative;margin-top:.1em;color:var(--sage-deep)}
.mantra-2 svg{width:100%;height:.3em;margin-top:.05em;overflow:visible}
.mantra-2 path{stroke-dasharray:1;stroke-dashoffset:0}

/* About */
.about{padding:clamp(48px,7vw,96px) 0;background:var(--paper)}
.about-grid{grid-template-columns:.8fr 1.2fr;align-items:center}
.arch-photo{position:relative;max-width:380px;width:100%}
.arch-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:999px 999px 0 0;box-shadow:0 24px 40px -20px rgba(51,39,46,.35)}
.rose-stone{position:absolute;right:-24px;bottom:-14px;width:120px;height:42px;border-radius:50%;background:var(--rose);z-index:-1}
.arch-photo.small{max-width:340px}
.contact-lines{margin:2rem 0 0;font:600 1rem/1.7 var(--sans)}
@media(max-width:760px){.about-grid{grid-template-columns:1fr}.arch-photo{margin-inline:auto}}

/* Final CTA */
.final{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--cream),var(--butter));padding:clamp(72px,10vw,140px) 0}
.final-glow{position:absolute;left:50%;top:40%;width:90vmin;height:90vmin;transform:translate(-50%,-50%);background:radial-gradient(closest-side,#FFFBE3,rgba(255,244,204,0));pointer-events:none}
.final .wrap{position:relative}
.final h2{font:italic 500 clamp(2rem,1.3rem + 3vw,3.6rem)/1.2 var(--serif);margin-bottom:1em}
.notify{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:520px;margin:0 auto 1rem}
.notify input[type=email]{flex:1 1 240px}
.notify .thanks{flex-basis:100%}
input,textarea{font:1rem/1.4 var(--sans);color:var(--ink);background:var(--cream);border:2px solid var(--line);border-radius:12px;padding:.85em 1em;width:100%;transition:border-color .2s,box-shadow .2s}
.notify input{border-radius:999px;padding-inline:1.4em}
input:focus,textarea:focus{outline:none;border-color:var(--sage-deep);box-shadow:0 0 0 4px rgba(124,140,94,.25)}
.thanks{font:700 1rem/1.5 var(--sans);color:var(--sage-deep)}
.form .thanks{margin:20px 0 0}

/* Footer */
.site-footer{background:var(--night);color:var(--night-text);padding:56px 0 36px;font-size:1rem}
.site-footer a{color:var(--night-text)}.site-footer .wordmark{color:var(--butter)}
.footer-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px;margin-bottom:32px}
.footer-grid p{margin:.3em 0}.footer-nav{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,auto);gap:6px 36px;font:700 .9rem var(--sans)}
.footer-nav a{text-decoration:none}.footer-nav a:hover{text-decoration:underline}
.footer-fine{border-top:1px solid rgba(246,233,196,.2);padding-top:20px;font:600 .85rem/1.6 var(--sans);opacity:.8}.footer-fine p{margin:.2em 0}

/* Inner pages */
.page-hero{position:relative;overflow:hidden;background:var(--paper);text-align:center;padding:clamp(48px,7vw,96px) 0 clamp(36px,5vw,60px);border-bottom:1px solid var(--line)}
.page-hero .wrap{position:relative}
.arch-outline{position:absolute;left:50%;top:-40px;transform:translateX(-50%);width:min(560px,92vw);height:calc(100% + 40px);color:var(--sage);opacity:.55;pointer-events:none}
.page-hero h1{font-size:clamp(2.2rem,1.4rem + 3.6vw,4.2rem);margin-bottom:.3em}
.lede{font:italic 400 clamp(1.15rem,1rem + .6vw,1.4rem)/1.5 var(--serif);max-width:32em;margin:0 auto;color:var(--ink)}
.stones-divider{display:flex;justify-content:center;gap:10px;margin-top:1.8rem}
.stones-divider i{width:34px;height:14px;border-radius:50%;background:var(--rose)}.stones-divider i:nth-child(2){background:var(--blush);transform:translateY(5px)}
.narrow-prose{max-width:46em;margin:0 auto 3rem}
.prose p{max-width:36em}
.story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4vw,56px) clamp(20px,4vw,48px)}
.story-meta{font:800 .75rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--rose-deep)}
.credit{font:600 .82rem var(--sans);color:var(--ink);opacity:.65}
@media(max-width:700px){.story-grid{grid-template-columns:1fr}}
.story{max-width:680px;margin:0 auto;font-size:1.2rem;line-height:1.8}
.story figure{margin:0 0 2rem calc(min(960px,100vw - 40px) / -2);width:min(960px,100vw - 40px);position:relative;left:50%}
.story figure img{width:100%;height:auto;border-radius:18px}
.story>p:first-of-type::first-letter,.story>figure+p::first-letter{font:600 4.2rem/.8 var(--serif);float:left;margin:.08em .12em 0 0;color:var(--mauve)}
.story-nav{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);font:700 .95rem var(--sans)}
.story-nav a{text-decoration:none;color:var(--plum)}
.book-list{display:grid;gap:22px;max-width:820px}
.book-card{background:var(--paper);border:1px solid var(--line);border-left:8px solid var(--rose);border-radius:8px 28px 28px 8px;padding:28px 32px}
.sage .book-card{border-left-color:var(--sage)}
.book-card h2{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);margin-bottom:.2em}
.contact-grid{grid-template-columns:.7fr 1.3fr;align-items:start}
.form label{display:block;font:700 .9rem var(--sans);margin-bottom:16px}
.form input,.form textarea{margin-top:6px}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}.contact-grid .arch-photo{margin-inline:auto}}

/* Motion (only when the visitor hasn't asked for less) */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .site-header{view-transition-name:site-header}
  html.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease) var(--d,0ms),transform .8s var(--ease) var(--d,0ms)}
  html.js [data-reveal].is-in{opacity:1;transform:none}
  html.js [data-reveal="arch"] img{clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease)}
  html.js [data-reveal="arch"].is-in img{clip-path:inset(0)}
  html.js [data-reveal="pop"]{transform:scale(.94)}
  html.js .reveal-words .w{opacity:.14;transition:opacity .7s ease calc(var(--i)*45ms)}
  html.js .reveal-words.is-in .w{opacity:1}
  html.js .mantra-2 path{stroke-dashoffset:1;transition:stroke-dashoffset .9s var(--ease) .9s}
  html.js .mantra-2.is-in path{stroke-dashoffset:0}
  html.js .poem-panel:not([hidden]) .line{animation:lineIn .7s var(--ease) var(--t) both}
  @keyframes lineIn{from{opacity:0;transform:translateY(8px)}}
  .door-panel{animation:doorOpen 1.7s cubic-bezier(.65,0,.35,1) .3s both}
  @keyframes doorOpen{from{transform:scaleX(1.42)}}
  .door-glow{animation:glowIn 2s ease .3s both}.leaf-shadow{animation:glowIn 2.4s ease .6s both}
  @keyframes glowIn{from{opacity:.25}to{opacity:1}}
  .beam{animation:beamIn 1.6s ease .9s both}
  @keyframes beamIn{from{opacity:0}to{opacity:1}}
  .stone{animation:stoneIn .8s var(--ease) both}.s1{animation-delay:.9s}.s2{animation-delay:1.1s}.s3{animation-delay:1.3s}.s4{animation-delay:1.5s}
  @keyframes stoneIn{from{opacity:0;transform:translateY(10px)}}
  .book{animation:coverIn 1.2s var(--ease) .35s both}
  @keyframes coverIn{from{opacity:0;translate:0 40px}}
  .hero-glow{animation:breathe 7s ease-in-out infinite alternate}
  @keyframes breathe{from{transform:scale(.94);opacity:.7}to{transform:scale(1.06);opacity:1}}
  }
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition-duration:.01ms!important}.noise{display:none}}
.site-footer .small{color:inherit;opacity:.85}

/* ===== v2: author-first home, book object, new sections ===== */
body{text-wrap:pretty}h1,h2,h3,blockquote,.lede,.subtitle,.hero-line{text-wrap:balance}
blockquote{hanging-punctuation:first}

/* Hero (home): name first, the book as featured work */
.hero-name{font-size:clamp(2.8rem,1.6rem + 5vw,5.8rem);line-height:1.02;letter-spacing:-.015em;margin-bottom:.15em}
.hero-line{font:italic 500 clamp(1.3rem,1.1rem + 1vw,1.8rem)/1.35 var(--serif);color:var(--plum);margin:0 0 1.4rem;max-width:22em}
.featured{display:grid;gap:4px;max-width:30em;background:rgba(255,255,255,.62);border:1px solid rgba(78,52,70,.14);border-left:5px solid var(--sage);border-radius:6px 22px 22px 6px;padding:16px 22px;text-decoration:none;color:var(--ink);font-size:.98rem;line-height:1.5;transition:transform .35s var(--ease),box-shadow .35s}
.featured:hover{transform:translateY(-3px);box-shadow:0 16px 30px -18px rgba(51,39,46,.45);color:var(--ink)}
.featured strong{font:600 1.7rem/1.1 var(--serif);color:var(--plum)}
.featured-label{font:800 .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--rose-deep)}

/* The book as an object */
.book{position:absolute;right:0;bottom:6%;width:60%;transform-style:preserve-3d;transform:perspective(1100px) rotateY(calc(-16deg + var(--ry,0deg))) rotateX(var(--rx,0deg));transition:transform .5s var(--ease);will-change:transform;view-transition-name:cover}
.cover{display:block;width:100%;height:auto;border-radius:2px 5px 5px 2px;box-shadow:0 1px 1px rgba(51,39,46,.18),0 6px 12px rgba(51,39,46,.14),0 24px 36px -8px rgba(51,39,46,.32)}
.book::before{content:"";position:absolute;inset:0;border-radius:2px 5px 5px 2px;background:linear-gradient(90deg,rgba(0,0,0,.2) 0,rgba(255,255,255,.22) 2.2%,rgba(255,255,255,0) 7%);transform:translateZ(1px);pointer-events:none}
.book::after{content:"";position:absolute;top:1.2%;bottom:1.2%;left:100%;width:5.5%;transform-origin:left center;transform:rotateY(90deg);background:repeating-linear-gradient(90deg,#FFFDF6 0 2px,#E4DAC0 2px 3px);border-radius:0 3px 3px 0}
.hero--book .hero-art{aspect-ratio:400/520;max-width:480px}
.hero--book .book{right:auto;left:50%;width:62%;bottom:9%;margin-left:-31%}
.stage-svg{position:absolute;inset:0;width:100%;height:100%}
@media(max-width:900px){.hero--book .hero-art{max-width:min(320px,76vw)}}

/* CSS-only hero entrance (no JS gating, so the title is never held back) */
@media (prefers-reduced-motion:no-preference){.hi{animation:hiRise .9s var(--ease) var(--d,0ms) both}@keyframes hiRise{from{opacity:0;transform:translateY(22px)}}}

/* Foreword line on home */
.foreword-line{padding:0 0 clamp(48px,7vw,96px)}
.foreword-line figure{margin:0 0 1.6rem;text-align:center}
.foreword-line figure::before{content:"";display:block;width:48px;height:3px;background:var(--sage);border-radius:3px;margin:0 auto 1.2rem}
.foreword-line blockquote{margin:0 0 1rem;font:italic 400 clamp(1.25rem,1rem + 1.2vw,1.7rem)/1.4 var(--serif);color:var(--plum)}

/* The work strip */
.work{padding:clamp(48px,7vw,96px) 0;background:var(--paper)}
.work h2{text-align:center;margin-bottom:1.2em}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,36px)}
.work-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);font-size:1rem;line-height:1.55}
.work-card strong{font:600 1.45rem/1.2 var(--serif);color:var(--plum)}
.work-art{display:grid;place-items:center;aspect-ratio:4/5;border-radius:999px 999px 16px 16px;overflow:hidden;margin-bottom:12px;transition:transform .5s var(--ease),box-shadow .5s}
.work-card:hover .work-art{transform:translateY(-6px);box-shadow:0 22px 34px -22px rgba(51,39,46,.5)}
.cover-art{background:linear-gradient(180deg,var(--butter),#FCF0C8)}.cover-art img{width:56%;height:auto;border-radius:2px 4px 4px 2px;box-shadow:0 14px 24px -10px rgba(51,39,46,.45);transform:translateY(8%) rotate(-3deg)}
.books-art{background:linear-gradient(180deg,#F8DDD3,#FBEDE6)}.books-art svg{width:78%;height:auto}
.story-art{background:#F4E3DC}.story-art img{width:100%;height:100%;object-fit:cover}
.work-card .more{font:800 .85rem var(--sans);color:var(--sage-deep);margin-top:4px}
@media(max-width:800px){.work-grid{grid-template-columns:1fr;max-width:380px;margin-inline:auto}.work-art{aspect-ratio:1}}

/* About extras */
.dropcap p:first-of-type::first-letter{font:600 3.6rem/.85 var(--serif);float:left;margin:.07em .1em 0 0;color:var(--mauve)}
.published-label{font:800 .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--plum);opacity:.8;margin:1.6rem 0 .4rem}
.published{display:flex;flex-wrap:wrap;gap:6px 18px;font:800 .78rem var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--owl)}
.published span:not(:last-child)::after{content:"·";margin-left:18px;color:var(--rose-deep)}
.about .text-link{margin-right:18px}

/* Book page: the path through the four sections */
.path-sec{padding:clamp(48px,7vw,96px) 0;background:var(--paper)}
.path{list-style:none;margin:2.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,36px);position:relative}
.step{position:relative;padding-top:56px}
.step::before{content:"";position:absolute;left:0;top:16px;right:calc(-1 * clamp(18px,3vw,36px));height:2px;background:repeating-linear-gradient(90deg,var(--blush) 0 8px,transparent 8px 16px)}
.step:last-child::before{display:none}
.stone-num{position:absolute;left:0;top:0;display:grid;place-items:center;width:64px;height:34px;border-radius:50%;background:var(--rose);color:var(--plum);font:800 .95rem var(--sans);transition:transform .4s var(--ease),background .4s}
.step:hover .stone-num{transform:scale(1.1) rotate(-3deg);background:var(--blush)}
.step h3{font-size:1.25rem;margin-bottom:.3em}.step p{font-size:1rem;line-height:1.55;margin-bottom:.6em}
.step-line{font:italic 400 1rem/1.5 var(--serif);color:var(--plum);border-left:3px solid var(--sage);padding-left:12px}
@media(max-width:900px){.path{grid-template-columns:1fr 1fr}.step::before{display:none}}
@media(max-width:560px){.path{grid-template-columns:1fr}}
.praise-grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));max-width:900px;margin-inline:auto}

/* Poems: single + tabs */
html.js .poem-panel:not(.is-active){display:none}
html:not(.js) .tabs{display:none}html:not(.js) .poem-panel{margin-bottom:2.4rem}
.poem-panel{transition:opacity .15s}.poem-panel.leaving{opacity:0}
.poem-note a{color:var(--butter);margin-left:.4em}
.poem-help{font:600 .85rem var(--sans);opacity:.7;margin:0}

/* Press + colophon */
.press{padding:clamp(48px,7vw,96px) 0;background:var(--paper)}
.press h2{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.5rem)}.press h3{font:800 .8rem var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .6rem;color:var(--plum)}
.downloads{list-style:none;padding:0;margin:0 0 2rem}.downloads li{border-bottom:1px solid var(--line);padding:.55em 0}
.bio{font-size:1.02rem;line-height:1.65}
.colophon{padding:36px 0 56px}.colophon p{font:600 .95rem var(--sans);color:var(--owl);margin:0}
.owl-sm{width:84px;height:auto;margin:0 auto 8px;mix-blend-mode:multiply}

/* Writing + young readers */
.pubs{list-style:none;margin:0 0 2.4rem;padding:0}
.pub{display:grid;gap:2px;padding:20px 0;border-bottom:1px solid var(--line)}
.pub strong{font:600 1.35rem/1.25 var(--serif);color:var(--plum)}.pub a{color:inherit}
.venue{font:800 .8rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--owl)}
.detail{font-size:1rem;opacity:.85}
.yr{display:grid;gap:3rem;max-width:820px}
.yr-sec{display:grid;gap:22px}.yr-sec h2{margin:0}
.yr-sec.rose .book-card{border-left-color:var(--rose)}.yr-sec.sage .book-card{border-left-color:var(--sage)}

/* Micro-interactions */
.praise-card::before,.foreword::before{transition:width .5s var(--ease)}.praise-card:hover::before{width:96px}
.story-card:hover .arch-img{transform:translateY(-4px);box-shadow:0 22px 34px -22px rgba(51,39,46,.5)}.arch-img{transition:transform .5s var(--ease),box-shadow .5s}
form.is-done .door-leaf{transform:scaleX(.2)}form.is-done .thanks{animation:fadeUp .6s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}}

/* Paper grain (desktop only, very subtle) */
@media (min-width:901px){body::before{content:"";position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .2 0 0 0 0 .15 0 0 0 0 .18 0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}}

/* Scroll-linked word reveal where the browser supports it */
@supports (animation-timeline: view()){@media (prefers-reduced-motion:no-preference){
  html.js .reveal-words .w{opacity:.14;transition:none;animation:wordLit linear both;animation-timeline:view();animation-range:entry calc(30% + var(--i)*1.4%) entry calc(75% + var(--i)*1.4%)}
  @keyframes wordLit{to{opacity:1}}
}}
@media print{.site-header,.hero-art,.final,.press form,.menu-btn{display:none!important}body{background:#fff}body::before{display:none}.hero{padding-top:20px}}

/* Story cards (restored): arch-masked, cropped thumbnails */
.story-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);font-size:1rem;line-height:1.55}
.story-card strong{font:600 1.3rem/1.25 var(--serif);color:var(--plum)}
.arch-img{display:block;overflow:hidden;border-radius:999px 999px 14px 14px;aspect-ratio:1;background:var(--paper);margin-bottom:10px}
.arch-img.tall{aspect-ratio:4/5}
.arch-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.story-card:hover img{transform:scale(1.05)}
.final .mantra-1,.final .mantra-2{font-size:clamp(2.2rem,1.3rem + 4.2vw,4.4rem)}
.final .notify{margin-top:2rem}

/* Contact: highlighted note for agents */
.callout{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--sage);border-radius:6px 22px 22px 6px;padding:16px 22px;margin-bottom:28px}
.callout p{margin:.3em 0 0;font:600 1.12rem/1.5 var(--serif);color:var(--plum)}

/* Wooden Owl Books mark in more places */
.imprint-mark{display:block;margin:0 0 10px}
.owl-hero{width:72px;height:auto;mix-blend-mode:multiply}
.footer-owl{display:flex;align-items:center;gap:12px;margin-top:18px!important;font:700 .8rem/1.35 var(--sans);letter-spacing:.04em;color:var(--night-text)}
.owl-badge{display:grid;place-items:center;flex:none;width:68px;height:68px;border-radius:50%;background:var(--cream)}
.owl-foot{width:54px;height:auto;mix-blend-mode:multiply}
@media(max-width:900px){.imprint-mark{margin-inline:auto}}
.home .colophon{background:var(--paper);padding:40px 0}

/* Resources */
.resources{list-style:none;margin:0 0 2.4rem;padding:0;display:grid;gap:14px}
.resource{display:grid;gap:3px;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--rose);border-radius:6px 22px 22px 6px;padding:18px 24px;text-decoration:none;color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.resource:hover{transform:translateY(-3px);box-shadow:0 16px 28px -20px rgba(51,39,46,.5);border-left-color:var(--sage);color:var(--ink)}
.resource strong{font:600 1.3rem/1.3 var(--serif);color:var(--plum)}
.resource-url{font:700 .85rem var(--sans);color:var(--sage-deep);word-break:break-all}
.callout-sub{font:600 .95rem/1.5 var(--sans)!important;color:var(--ink)!important;opacity:.8}
.poem-help a{color:var(--butter)}
.form-title{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.1rem);margin-bottom:.8em}
.contact-main .callout{margin:30px 0 0}
.featured-text{font-size:.86rem;line-height:1.5;opacity:.92}
