:root{--cream:#fbf7ed;--paper:#fffdf7;--ink:#23463d;--muted:#6c746a;--sage:#dce6d0;--sage2:#eff2df;--gold:#efb941;--coral:#d96f55;--line:#ded9ca;--shadow:0 18px 45px rgba(38,59,46,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.6}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,72px);position:sticky;top:0;z-index:20;background:rgba(251,247,237,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(222,217,202,.65)}.brand{display:flex;align-items:center;gap:10px}.brand-flower{font-size:34px;line-height:1;color:var(--gold);font-family:serif}.brand strong{display:block;font-family:"Playfair Display",serif;font-size:20px;line-height:1.05;font-weight:600}.brand small{display:block;font-size:9px;letter-spacing:.08em;color:#788078;margin-top:4px}.nav{display:flex;gap:30px;font-size:13px;font-weight:600;color:#485a52}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--gold);transition:.25s}.nav a:hover:after{width:100%}.button{display:inline-flex;align-items:center;gap:18px;padding:13px 21px;border-radius:999px;background:var(--gold);color:#263d34;font-weight:700;font-size:13px;box-shadow:0 8px 18px rgba(239,185,65,.2);transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(239,185,65,.27)}.button span,.text-link span{font-size:17px}.button-small{padding:10px 17px;font-size:12px}.menu{display:none;border:0;background:none}.menu i{display:block;width:24px;height:2px;background:var(--ink);margin:5px}.hero{max-width:1320px;margin:0 auto;padding:62px clamp(24px,5vw,72px) 46px;display:grid;grid-template-columns:.88fr 1.12fr;gap:42px;align-items:center;min-height:610px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:10px;font-weight:700;color:#8d7550;margin:0 0 12px}.hero h1{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(48px,5.5vw,78px);line-height:1.02;letter-spacing:-.035em;margin:0 0 22px}.hero h1 em,.book h2 em,.quote-section em{font-style:normal;color:#b77927}.lead{max-width:490px;color:#5f6d65;font-size:16px}.actions{display:flex;align-items:center;gap:24px;margin-top:30px}.text-link{font-weight:700;font-size:13px;border-bottom:1px solid #a6aa9e;padding-bottom:3px}.hero-art{height:470px;overflow:hidden;border-radius:38% 38% 42% 42%/32% 34% 40% 42%;background:#dce8d4}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:51% 52%;transform:scale(1.02)}.intro-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:center;align-items:center;gap:40px;padding:18px 20px;font-family:"Playfair Display",serif;font-size:18px;background:#f8f3e7}.dots{display:flex;gap:6px}.dots span{width:6px;height:6px;border-radius:50%;background:var(--gold)}.section{max-width:1200px;margin:0 auto;padding:105px clamp(24px,5vw,60px)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:45px}.section h2{font-family:"Playfair Display",serif;font-size:clamp(36px,4vw,52px);line-height:1.08;font-weight:500;letter-spacing:-.025em;margin:0}.section-note{max-width:390px;color:var(--muted);font-size:14px;margin:0}.character-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.character-card{background:var(--paper);border:1px solid var(--line);padding:14px;border-radius:20px;transition:.25s;box-shadow:0 4px 0 rgba(35,70,61,.03)}.character-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.character-card.featured{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:18px}.character-img{height:180px;border-radius:14px;overflow:hidden;background:var(--sage)}.featured .character-img{height:100%;min-height:250px}.character-img img{width:100%;height:100%;object-fit:cover}.character-card:nth-child(2) .character-img img{object-position:52% 50%;transform:scale(1.35)}.character-card:nth-child(3) .character-img img{object-position:48% 50%;transform:scale(1.35)}.character-card:nth-child(4) .character-img img{object-position:50% 58%;transform:scale(1.15)}.character-card:nth-child(5) .character-img img{object-position:46% 57%;transform:scale(1.2)}.tag{display:inline-block;margin-top:14px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#96784b}.character-card h3{font-family:"Playfair Display",serif;font-size:25px;margin:5px 0}.character-card p{font-size:12px;color:var(--muted);margin:0 0 7px}.book{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:90px;background:#f0f2e5;max-width:none;padding-left:max(24px,calc((100vw - 1080px)/2));padding-right:max(24px,calc((100vw - 1080px)/2));}.book-art{height:520px;overflow:hidden;border-radius:18px;box-shadow:var(--shadow);background:#d9e5cf}.book-art img{width:100%;height:100%;object-fit:cover;object-position:50% 48%;transform:scale(1.08)}.book-copy{max-width:520px}.book-copy h2{font-size:clamp(38px,4vw,56px);margin-bottom:22px}.book-copy p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:500px}.book-copy .button{margin-top:15px}.quote-section{text-align:center;padding:95px 24px;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.quote-mark{font-family:"Playfair Display";font-size:65px;color:var(--gold);line-height:.4}.quote-section blockquote{font-family:"Playfair Display",serif;font-size:clamp(30px,4vw,50px);line-height:1.25;margin:18px auto 12px;font-weight:500}.quote-source{font-size:11px;letter-spacing:.08em;color:#858b83}.places{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;align-items:center}.places-copy{max-width:450px}.places-copy p:not(.eyebrow){color:var(--muted);font-size:14px}.places-art{height:330px;border-radius:20px;overflow:hidden}.places-art img{width:100%;height:100%;object-fit:cover;object-position:55% 62%}.author{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center;background:#f4efe4;max-width:none;padding-left:max(24px,calc((100vw - 1080px)/2));padding-right:max(24px,calc((100vw - 1080px)/2))}.author-art{height:400px;border-radius:50% 50% 18px 18px;overflow:hidden}.author-art img{width:100%;height:100%;object-fit:cover;object-position:40% 55%;transform:scale(1.06)}.author-copy{max-width:500px}.author-copy p:not(.eyebrow){font-size:14px;color:var(--muted)}.cta{padding:70px max(24px,calc((100vw - 1080px)/2));background:var(--ink);color:#f9f5e9;display:flex;align-items:center;justify-content:space-between;gap:40px}.cta h2{font-family:"Playfair Display";font-size:clamp(38px,4vw,55px);font-weight:500;margin:0 0 8px}.cta p:not(.eyebrow){color:#d7dfd8;margin:0}.cta .eyebrow{color:#e8bd62}.button-light{background:#f4c65a}.contact{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-copy h2{font-size:54px}.contact-copy>p:not(.eyebrow){color:var(--muted);max-width:440px}.contact-detail{display:flex;gap:12px;align-items:center;margin-top:30px}.contact-detail span{font-size:28px;color:var(--gold)}.contact-detail strong{display:block;font-family:"Playfair Display";font-size:20px}.contact-detail small{color:var(--muted);font-size:11px}.contact-form{background:#fffdf8;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}label{display:block;font-size:11px;font-weight:700;color:#52625a;margin-bottom:14px}input,textarea{display:block;width:100%;margin-top:6px;border:1px solid #d9d7cb;border-radius:10px;padding:12px 13px;background:#fffefa;font:inherit;font-size:13px;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:#b8a978;box-shadow:0 0 0 3px rgba(239,185,65,.12)}textarea{resize:vertical}.contact-form .button{border:0;cursor:pointer;margin-top:4px}.form-message{font-size:12px;color:#66826c;margin:12px 0 0}.footer{background:#193d34;color:#e9eee8;padding:45px max(24px,calc((100vw - 1200px)/2)) 24px}.footer .brand strong{color:#fff}.footer .brand small{color:#aebbb2}.footer-top{display:grid;grid-template-columns:1.4fr 1fr .6fr;align-items:center;gap:30px;padding-bottom:35px}.footer-links{display:flex;gap:20px;flex-wrap:wrap;font-size:12px}.footer-links a:hover{color:#f3c95b}.social{display:flex;justify-content:end;gap:9px}.social a{border:1px solid #557066;border-radius:50%;width:31px;height:31px;display:grid;place-items:center;font-size:11px}.footer-bottom{border-top:1px solid #466258;padding-top:18px;display:flex;justify-content:space-between;color:#aebbb2;font-size:10px}@media(max-width:900px){.nav{display:none}.menu{display:block}.site-header .button{display:none}.hero{grid-template-columns:1fr;padding-top:45px}.hero-art{height:390px;order:-1}.hero-copy{text-align:center}.lead{margin-left:auto;margin-right:auto}.actions{justify-content:center}.character-grid{grid-template-columns:repeat(2,1fr)}.character-card.featured{grid-column:span 2}.book,.places,.author,.contact{grid-template-columns:1fr;gap:45px}.book-art{height:420px}.author-art{height:360px}.cta{flex-direction:column;align-items:flex-start}.footer-top{grid-template-columns:1fr}.social{justify-content:start}}@media(max-width:600px){.site-header{height:68px}.brand strong{font-size:17px}.brand small{font-size:8px}.hero{padding:38px 20px}.hero h1{font-size:46px}.hero-art{height:300px;border-radius:30px}.section{padding:70px 20px}.section-head{display:block}.section-note{margin-top:16px}.character-grid{grid-template-columns:1fr}.character-card.featured{grid-column:auto;display:block}.featured .character-img{min-height:230px}.book{padding:70px 20px}.book-art{height:350px}.places{padding:70px 20px}.places-art{height:250px}.author{padding:70px 20px}.contact{padding:70px 20px}.contact-copy h2{font-size:46px}.footer{padding-left:20px;padding-right:20px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:7px}.intro-strip{font-size:15px;gap:15px}.dots{display:none}}
@media(max-width:900px){.nav.open{display:flex;position:absolute;left:16px;right:16px;top:72px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow);flex-direction:column;gap:15px}}

/* --- Gentle storybook motion --- */
body{overflow-x:hidden}
.site-header{transition:box-shadow .35s ease,background .35s ease,transform .35s ease}
.site-header.scrolled{background:rgba(251,247,237,.97);box-shadow:0 8px 30px rgba(35,70,61,.07)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0s)}
.reveal.is-visible{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}
.reveal-left.is-visible{opacity:1;transform:none}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}
.reveal-right.is-visible{opacity:1;transform:none}

/* Initial page entrance */
.site-header{animation:headerDrop .8s cubic-bezier(.2,.7,.2,1) both}
.hero-copy .eyebrow,.hero-copy h1,.hero-copy .lead,.hero-copy .actions{opacity:0;transform:translateY(18px);animation:heroText .75s cubic-bezier(.2,.7,.2,1) forwards}
.hero-copy .eyebrow{animation-delay:.12s}.hero-copy h1{animation-delay:.2s}.hero-copy .lead{animation-delay:.32s}.hero-copy .actions{animation-delay:.44s}
.hero-art{opacity:0;transform:scale(.965) translateY(14px);animation:heroArt 1.05s cubic-bezier(.2,.7,.2,1) .18s forwards}
.hero-art img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hero-art:hover img{transform:scale(1.055)}

@keyframes headerDrop{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes heroText{to{opacity:1;transform:none}}
@keyframes heroArt{to{opacity:1;transform:none}}

/* Soft floating motion for small illustrations */
.character-card .character-img img{transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.character-card:hover .character-img img{transform:scale(1.42) translateY(-3px)}
.character-card.featured:hover .character-img img{transform:scale(1.07) translateY(-3px)}
.places-art img,.author-art img,.book-art img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.places-art:hover img,.author-art:hover img,.book-art:hover img{transform:scale(1.045)}

/* Tiny decorative movement without making the page busy */
.intro-strip .dots span{animation:dotPulse 2.4s ease-in-out infinite}
.intro-strip .dots span:nth-child(2){animation-delay:.3s}.intro-strip .dots span:nth-child(3){animation-delay:.6s}
@keyframes dotPulse{0%,100%{transform:scale(.75);opacity:.45}50%{transform:scale(1.15);opacity:1}}

/* Stagger the character cards as they enter */
.character-grid .character-card:nth-child(1){--delay:.02s}.character-grid .character-card:nth-child(2){--delay:.09s}.character-grid .character-card:nth-child(3){--delay:.16s}.character-grid .character-card:nth-child(4){--delay:.23s}.character-grid .character-card:nth-child(5){--delay:.30s}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-header,.hero-copy .eyebrow,.hero-copy h1,.hero-copy .lead,.hero-copy .actions,.hero-art{animation:none;opacity:1;transform:none}.reveal,.reveal-left,.reveal-right{opacity:1;transform:none;transition:none}.character-card .character-img img,.places-art img,.author-art img,.book-art img{transition:none}.intro-strip .dots span{animation:none}}
