:root { --background: #fffaf0; --purple: #3f285d; --orange: #d45c3e; --yellow: #ffe27d; }
html { scroll-padding-top: 24px; }
body { background: #fffaf2; }
.site-header { min-height: 100px; gap: 20px; }
.site-header nav { display: flex; align-items: center; gap: clamp(12px, 2vw, 30px); flex-wrap: wrap; }
.site-header nav a { font-size: 15px; font-weight: 800; text-decoration: none; }
.site-header nav a:hover, .site-header nav a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
.site-header .wordmark { flex-shrink: 0; }
.site-header .wordmark img { width: 52px; height: 52px; }
.site-header .wordmark-copy strong { font-size: 32px; line-height: 1; }
.site-header .wordmark-copy small { font-size: 10px; letter-spacing: .05em; text-transform: none; line-height: 1.25; }
.hero { grid-template-columns: .82fr 1.18fr; gap: clamp(25px, 4vw, 64px); padding-block: 64px 88px; }
.hero-copy h1 { font-size: clamp(45px, 5vw, 72px); line-height: 1.06; max-width: 520px; }
.hero-copy .lead { font-size: clamp(21px, 2vw, 25px); margin-top: 20px; }
.hero-copy .intro { max-width: 500px; font-size: 17px; line-height: 1.65; }
.hero-actions, .profile-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.hero-art { position: relative; margin: 0; align-self: center; }
.hero-art img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 24px; box-shadow: 0 14px 28px #3f285d1b; }
.hero-art figcaption { font-size: 13px; text-align: right; color: #76687d; padding: 9px 4px 0; }
/* Every filled site action shares the reference's warm, raised wooden-sign treatment. */
.button, .button.yellow { display: inline-flex; gap: 12px; border-radius: 7px; border: 1px solid #9d6536; padding: 12px 19px; min-height: 48px; background: linear-gradient(180deg,#fbe0a0 0%,#f1bf74 54%,#d9944e 100%); color: #40294d; box-shadow: inset 0 2px 0 #fff4d3, inset 0 -2px 0 #a96d3b, 0 4px 0 #8b542d, 0 7px 13px #4c2a241f; text-decoration: none; font-size: 15px; line-height: 1.25; font-weight: 900; white-space: normal; transition: transform .18s,box-shadow .18s,filter .18s; }
.button:hover, .button.yellow:hover { transform: translateY(-2px); filter: brightness(1.04); box-shadow: inset 0 2px 0 #fff4d3, inset 0 -2px 0 #a96d3b, 0 6px 0 #8b542d, 0 10px 17px #4c2a2424; }
.button:active { transform: translateY(3px); box-shadow: inset 0 2px 0 #fff4d3, 0 1px 0 #8b542d; }
.button span { font-size: 18px; }
.values { font-size: clamp(16px, 2vw, 22px); }
.story { padding-block: 78px; }
.map-frame { border-radius: 22px; }
/* Hotspots are percentages of the unchanged map artwork, so they track its responsive size. */
.map-illustration { position: relative; }
.map-hotspot { position: absolute; display: block; border: 2px solid transparent; border-radius: 14px; text-decoration: none; }
.map-hotspot--shop { left: 65%; top: 9%; width: 17%; height: 25%; }
.map-hotspot--lantern { left: 79%; top: 7%; width: 19%; height: 29%; }
.map-hotspot--school { left: 43%; top: 4%; width: 20%; height: 21%; }
.map-hotspot--surgery { left: 39%; top: 56%; width: 22%; height: 24%; }
.map-hotspot--cottage { left: 35%; top: 34%; width: 30%; height: 18%; }
.map-hotspot--woods { left: 2%; top: 15%; width: 38%; height: 24%; }
.map-hotspot--pebble { left: 66%; top: 62%; width: 31%; height: 24%; }
.map-hotspot--quilt { left: 2%; top: 57%; width: 33%; height: 27%; }
.map-hotspot::after { content: "↗"; display: grid; place-items: center; position: absolute; top: 2%; right: 2%; width: 26px; height: 26px; border-radius: 50%; background: #fff7dd; border: 1px solid #8c6a78; color: #49286a; box-shadow: 0 2px 5px #32243737; font-size: 17px; font-weight: 900; }
.map-hotspot:hover, .map-hotspot:focus-visible { border-color: #704480; background: #fff8e533; outline: none; }
.map-hotspot:focus-visible { box-shadow: inset 0 0 0 3px #fff; }
.map-frame figcaption a { color: #49286a; font-weight: 800; text-underline-offset: 3px; }
.places { padding-bottom: 65px; }
.place-grid { gap: 18px; }
.place-grid article { min-width: 0; }
.map-note { margin: 22px 0 0; color: #695970; font-size: 15px; }
.place-grid #wobble-shop h3 a { color: inherit; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.place-grid article h3 a { color: inherit; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.directory-section { padding-block: 38px 76px; scroll-margin-top: 22px; }
.directory-section .eyebrow { margin-bottom: 9px; }
.directory-section h2 { font-size: clamp(34px, 4vw, 51px); }
.section-intro { color: #675c6d; max-width: 650px; margin: 12px 0 27px; }
.portrait-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 19px; }
#residents .portrait-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.portrait-card { display: flex; flex-direction: column; overflow: hidden; min-width: 0; border: 1px solid #5d447215; border-radius: 18px; background: #fff; box-shadow: 0 9px 23px #45325d12; text-decoration: none; transition: transform .18s,box-shadow .18s; }
.portrait-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px #45325d1e; }
.portrait-visual { display: flex; align-items: flex-end; justify-content: center; height: 225px; overflow: hidden; background: radial-gradient(circle at 50% 78%,#fff8e3,#f1edf5 72%); }
.portrait-visual img { display: block; max-width: 100%; width: auto; height: 94%; object-fit: contain; }
/* Keep the full transparent creature visible on small cards. */
a[href="woollyback.html"] .portrait-visual img { width: auto; height: 94%; max-width: 100%; object-fit: contain; }
.portrait-card:nth-child(3n+2) .portrait-visual { background: radial-gradient(circle at 50% 78%,#fff4d6,#eaf5f2 78%); }
.portrait-card:nth-child(3n) .portrait-visual { background: radial-gradient(circle at 50% 78%,#fff3e9,#f3edf9 78%); }
.portrait-info { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 17px 20px 20px; }
.portrait-info strong { font-family: 'Baloo 2',sans-serif; font-size: 25px; line-height: 1.14; }
.portrait-info small { display: block; font-size: 14px; color: #6b5b72; margin: 4px 0 16px; }
.card-visit { display: inline-flex; gap: 8px; margin-top: auto; font-weight: 800; font-size: 14px; color: #49286a; text-decoration: underline; text-underline-offset: 4px; }
.gus-card .portrait-visual img { height: 94%; max-width: 100%; object-fit: contain; }
.portrait-card--harper .portrait-visual img { height: 97%; width: auto; object-fit: contain; }
.invitation { margin-block: 30px 75px; grid-template-columns: .45fr 1.55fr; }
.invitation-mark img { max-width: 155px; margin: 0 auto; }
.invitation h2 { line-height: 1.1; }
.activity-promo { display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: clamp(24px,5vw,72px); margin-block: 25px 70px; padding: clamp(30px,5vw,58px); border: 1px solid #e7d3bc; border-radius: 25px; background: linear-gradient(135deg,#fff7df,#f0f7f4); box-shadow: 0 13px 28px #45325d12; }
.activity-promo h2 { font-size: clamp(32px,4vw,50px); line-height: 1.08; margin: 7px 0 14px; }
.activity-promo p:not(.eyebrow) { max-width: 650px; color: #5f536b; font-size: 17px; }
.activity-promo figure { margin: 0; display: flex; justify-content: center; max-height: 360px; overflow: hidden; border-radius: 20px; background: #fff; }
.activity-promo figure img { display: block; width: 100%; height: 360px; object-fit: contain; object-position: center 12%; }
.site-footer { border-top: 1px solid #4b2b651c; }
.site-footer p { margin: 0; }
.site-footer a { text-underline-offset: 3px; }
.profile-page { padding-top: 70px; }
.profile-page > .eyebrow { color: #946334; }
.profile-layout { display: grid; grid-template-columns: 1fr .85fr; align-items: center; gap: clamp(32px,5vw,78px); }
.profile-copy h1 { font-size: clamp(48px, 6vw, 78px); }
.profile-kicker { font-size: clamp(19px,2vw,24px); font-weight: 800; line-height: 1.35; margin: 8px 0 26px; }
.profile-copy > p:not(.profile-kicker) { max-width: 610px; color: #5f536b; font-size: 17px; }
.profile-copy .place-reference { padding-top: 10px; font-size: 15px !important; }
.profile-copy .place-reference a { font-weight: 800; text-underline-offset: 4px; }
.profile-actions { margin-top: 28px; }
.profile-visual { display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; min-height: 475px; margin: 0; padding: 22px 22px 12px; border-radius: 24px; background: radial-gradient(circle at 48% 65%,#fff9e9,#eee9f3 78%); }
.profile-visual img { width: auto; height: auto; max-height: 510px; max-width: 100%; object-fit: contain; }
.profile-visual--muddle { min-height: 370px; }
.profile-visual--muddle img { max-height: 300px; }
.profile-visual--harper { background: radial-gradient(circle at 48% 70%,#fff8df,#ecf1e8 78%); }
.profile-visual--harper img { max-height: 510px; }
.profile-visual figcaption { color: #71667a; font-size: 13px; padding-top: 10px; }
.profile-gus img { max-height: 510px; max-width: 100%; object-fit: contain; }
.profile-extra { max-width: 380px; margin: 35px auto 0; text-align: center; }
.profile-extra img { border-radius: 20px; width: 100%; }
.profile-extra figcaption { font-size: 14px; color: #665874; margin-top: 8px; }
.profile-facts { padding-top: 76px; }
.profile-facts h2 { font-size: clamp(30px,4vw,45px); margin: 7px 0 24px; }
.fact-grid { list-style: none; counter-reset: muddle-fact; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 0; margin: 0; }
.fact-grid li { counter-increment: muddle-fact; padding: 24px 26px; border: 1px solid #eadacc; border-radius: 20px; background: #fffaf3; }
.fact-grid h3 { font-size: 21px; line-height: 1.25; margin: 0 0 9px; }
.fact-grid h3::before { content: counter(muddle-fact,decimal-leading-zero) " / "; color: #a46248; font-size: 14px; letter-spacing: .04em; vertical-align: 2px; }
.fact-grid p { color: #5f536b; font-size: 16px; line-height: 1.6; margin: 0; }
.more-profiles { padding-block: 80px 100px; }
.more-profiles h2 { font-size: clamp(30px,4vw,45px); margin-bottom: 22px; }
@media(max-width:900px) { .hero { grid-template-columns: 1fr; padding-block: 47px 65px; } .hero-copy h1 { max-width: 720px; } .hero-copy .intro { max-width: 690px; } .profile-layout { gap: 28px; } }
@media(max-width:700px) { .site-header { flex-wrap: wrap; padding-block: 16px; } .site-header nav { width: 100%; justify-content: flex-start; gap: 10px 18px; padding-bottom: 7px; } .portrait-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .portrait-visual { height: 185px; } .story { gap: 28px; } .profile-layout { grid-template-columns: 1fr; } .profile-visual { grid-row: 1; min-height: 0; } .profile-visual img { max-height: 380px; } .profile-page { padding-top: 35px; } .activity-promo { grid-template-columns: 1fr; } .activity-promo figure { max-height: 280px; } .activity-promo figure img { height: 280px; } .invitation { grid-template-columns: 1fr; gap: 12px; text-align: center; } .invitation-mark img { max-width: 90px; } }
@media(max-width:900px) { #residents .portrait-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .wrap { width: calc(100% - 32px); } .site-header nav a { font-size: 13px; } .hero { padding-top: 40px; } .hero-copy h1 { font-size: 43px; } .hero-actions .button { width: 100%; } .portrait-grid { gap: 12px; } .portrait-visual { height: 145px; } .portrait-info { padding: 12px 12px 15px; } .portrait-info strong { font-size: 20px; } .portrait-info small { font-size: 13px; line-height: 1.4; } .card-visit { font-size: 13px; } .directory-section { padding-bottom: 55px; } .profile-actions .button { width: 100%; } .profile-visual img { max-height: 300px; } .invitation { padding: 35px 23px; } }
@media(max-width:480px) { .map-hotspot::after { width: 18px; height: 18px; font-size: 12px; } }
@media(max-width:700px) { .fact-grid { grid-template-columns: 1fr; } .profile-facts { padding-top: 54px; } .profile-visual--muddle { min-height: 300px; } .profile-visual--muddle img { max-height: 260px; } }
@media(prefers-reduced-motion:reduce) { .button, .portrait-card { transition: none; } }

/* Stage 1: larger, child-friendly navigation on small screens. */
@media(max-width:700px) {
  .site-header { align-items: flex-start; }
  .site-header nav {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    width: 100%;
    padding: 4px 0 8px;
  }
  .site-header nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #dfcfbb;
    border-radius: 16px;
    background: #fff8e7;
    box-shadow: 0 3px 0 #e7d7c3;
    font-size: 14px;
    line-height: 1.2;
    text-align: center;
  }
  .site-header nav a:hover, .site-header nav a:focus-visible {
    text-decoration: none;
    background: #f2ebf8;
    transform: translateY(-1px);
  }
  .site-header nav a[aria-current="page"] {
    background: #49286a;
    border-color: #49286a;
    color: #fff;
    box-shadow: 0 3px 0 #321b4b;
  }
}
@media(max-width:380px) {
  .site-header nav { grid-template-columns: 1fr; }
}

/* Stage 2: child-friendly adventure map previews. */
.map-preview-dialog {
  width: min(680px, calc(100% - 28px));
  padding: 0;
  border: 0;
  border-radius: 24px;
  background: #fffaf0;
  color: #40294d;
  box-shadow: 0 24px 70px #2e1d3a55;
}
.map-preview-dialog::backdrop { background: #2d214566; backdrop-filter: blur(2px); }
.map-preview-card { display: grid; grid-template-columns: .9fr 1.1fr; overflow: hidden; }
.map-preview-visual { margin: 0; min-height: 270px; background: #efe9f4; }
.map-preview-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.map-preview-copy { position: relative; padding: 34px 32px 30px; }
.map-preview-copy h3 { margin: 4px 0 10px; font-size: clamp(28px,4vw,40px); line-height: 1.05; }
.map-preview-copy p { color: #62556d; line-height: 1.55; }
.map-preview-detail { margin: 13px 0; padding: 12px 14px; border-radius: 14px; background: #fff1ce; }
.map-preview-detail strong { color: #765035; }
.map-preview-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 20px; }
.map-preview-close { border: 0; background: transparent; color: #49286a; font: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.map-hotspot::after { content: "✦"; }
.map-hotspot:hover::after, .map-hotspot:focus-visible::after { transform: scale(1.08); }

/* Stage 2: Lantern Trail. */
.lantern-trail-promo, .lantern-trail-home {
  margin-block: 42px 70px;
  padding: clamp(28px,5vw,52px);
  border: 1px solid #e4cfad;
  border-radius: 24px;
  background: radial-gradient(circle at 85% 20%,#fff0a8,#fff8e7 38%,#f3eef7 100%);
  box-shadow: 0 12px 28px #45325d12;
}
.lantern-trail-promo h2, .lantern-trail-home h1 { margin: 7px 0 13px; }
.trail-progress { display: grid; gap: 9px; max-width: 520px; margin: 20px 0; }
.trail-progress progress { width: 100%; height: 16px; accent-color: #9a6f2b; }
.trail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 28px 0; }
.trail-stop { padding: 22px; border: 1px solid #ead8c2; border-radius: 19px; background: #fffdf8; }
.trail-stop h2, .trail-stop h3 { margin: 4px 0 8px; }
.trail-stop p { color: #62556d; }
.trail-stop a { font-weight: 800; text-underline-offset: 4px; }
.trail-marker { margin: 38px auto 22px; max-width: 650px; padding: 23px 25px; border: 1px dashed #c79f58; border-radius: 20px; background: #fff8df; text-align: center; }
.trail-marker p { margin: 5px auto 15px; max-width: 510px; color: #65566e; }
.trail-lantern-button { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 11px 17px; border: 1px solid #a97932; border-radius: 999px; background: #f7d98e; color: #442b50; font: inherit; font-weight: 900; cursor: pointer; box-shadow: 0 3px 0 #a56e2d; }
.trail-lantern-button::before { content: "🏮"; font-size: 23px; filter: grayscale(.7); }
.trail-lantern-button.is-found { background: #ffe78e; box-shadow: 0 0 24px #efb73f88,0 3px 0 #a56e2d; }
.trail-lantern-button.is-found::before { filter: none; }
.trail-complete-note { font-size: 15px; color: #6c5b72; }
@media(max-width:700px) {
  .map-preview-card { grid-template-columns: 1fr; }
  .map-preview-visual { min-height: 190px; max-height: 230px; }
  .map-preview-copy { padding: 25px 22px 24px; }
  .trail-grid { grid-template-columns: 1fr; }
}

/* Interactive Upgrade — 17 Sep 2026 */
.adventure-launch{margin:30px auto 64px;padding:clamp(24px,4vw,42px);border:1px solid #e3d5c4;border-radius:26px;background:#fffaf0;box-shadow:0 12px 28px #45325d10}.adventure-launch-copy{max-width:720px}.adventure-launch-copy h2,.adventure-progress h2,.book-gateway h2{margin:5px 0 10px}.adventure-launch-copy>p:last-child,.adventure-progress p,.book-gateway p{color:#65586d;line-height:1.6}.adventure-launch-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.adventure-choice{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;min-height:88px;padding:17px 18px;border:1px solid #e1d2bc;border-radius:19px;background:#fffdf8;color:#432d51;text-decoration:none;box-shadow:0 4px 0 #eadbc8;transition:transform .18s ease,box-shadow .18s ease}.adventure-choice>span{grid-row:1/3;font-size:30px}.adventure-choice strong{font-size:17px}.adventure-choice small{color:#75677c}.adventure-choice:hover,.adventure-choice:focus-visible{transform:translateY(-2px);box-shadow:0 6px 0 #e0cfb8}.adventure-progress{display:flex;align-items:center;justify-content:space-between;gap:26px;margin:28px auto 34px;padding:24px 28px;border:1px solid #dfd3e6;border-radius:22px;background:#f7f1fa}.adventure-progress>div:first-child{max-width:650px}.progress-counters{display:flex;gap:12px;flex:0 0 auto}.progress-counters a{display:grid;grid-template-columns:auto auto;align-items:center;gap:0 8px;min-width:128px;padding:13px 15px;border:1px solid #dfd1e7;border-radius:16px;background:#fff;text-decoration:none;color:#442b50}.progress-counters .progress-icon{grid-row:1/3;font-size:26px}.progress-counters strong{font-size:18px}.progress-counters small{color:#76677d}.book-gateway{display:grid;grid-template-columns:1.4fr .6fr;align-items:center;gap:clamp(24px,5vw,60px);margin-block:55px;padding:clamp(28px,5vw,54px);border-radius:28px;background:#f4eef8;overflow:hidden}.book-gateway-copy{max-width:720px}.book-gateway-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}.book-gateway figure{margin:0;text-align:center}.book-gateway figure img{width:min(280px,100%);max-height:330px;object-fit:contain;filter:drop-shadow(0 12px 16px #432d5120)}.paperback-note{margin-top:16px;font-size:14px;font-weight:800}.character-hello{animation:collyHello .52s ease both}@keyframes collyHello{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-8px) rotate(-2deg)}70%{transform:translateY(-2px) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.character-hello{animation:none}.adventure-choice{transition:none}}@media(max-width:760px){.adventure-launch-actions{grid-template-columns:1fr}.adventure-progress{align-items:stretch;flex-direction:column}.progress-counters{width:100%}.progress-counters a{flex:1;min-width:0}.book-gateway{grid-template-columns:1fr}.book-gateway figure{order:-1}.book-gateway figure img{max-height:230px}}@media(max-width:430px){.progress-counters{flex-direction:column}.adventure-choice{min-height:78px}}

/* Map & Explorer Upgrade — 2026-09-17 */
.progress-counters{grid-template-columns:repeat(3,minmax(0,1fr))}
.who-today{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(180px,.65fr);gap:clamp(1rem,4vw,3rem);align-items:center;margin-block:clamp(2rem,6vw,5rem);padding-block:clamp(1.4rem,4vw,2.6rem);border-top:1px solid rgba(52,74,60,.16);border-bottom:1px solid rgba(52,74,60,.16)}
.who-today-copy h2{margin:.15em 0 .35em}.who-today-copy .button{margin-top:.6rem}.who-today-visual{margin:0;display:grid;place-items:center;min-height:190px}.who-today-visual img{width:min(260px,100%);max-height:270px;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(34,45,38,.12))}
.map-hotspot.is-visited::after{content:'✓';position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:#fff;color:#355847;font-weight:900;font-size:.85rem;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.map-hotspot.is-visited{filter:saturate(.85)}.map-hotspot.has-lit-lantern{box-shadow:0 0 0 5px rgba(255,224,125,.32),0 0 24px rgba(224,169,53,.72)}
.map-progress-key{display:flex;gap:.7rem 1.25rem;flex-wrap:wrap;justify-content:center;padding:.85rem 1rem 1rem;font-size:.86rem;color:var(--muted,#5f6b63)}.map-progress-key span{display:inline-flex;align-items:center;gap:.4rem}.key-star{width:.78rem;height:.78rem;border-radius:50%;background:#f2c65c;display:inline-block;box-shadow:0 0 0 3px rgba(242,198,92,.2)}.key-star--visited{background:#fff;border:2px solid #557a65;position:relative}.key-star--visited:after{content:'✓';position:absolute;font-size:.58rem;font-weight:900;color:#355847;left:.05rem;top:-.2rem}.key-lantern{font-style:normal}
@media(max-width:700px){.progress-counters{grid-template-columns:1fr}.who-today{grid-template-columns:1fr}.who-today-visual{min-height:140px}.who-today-visual img{max-height:200px}.map-progress-key{justify-content:flex-start}}

/* 2026-09-17 illustrated publishing-style homepage refinement */
.home-redesign-note{display:none}
@media (min-width:901px){
  .site-header{min-height:86px}
  .site-header .wordmark img{width:48px;height:48px}
  .site-header .wordmark-copy strong{font-size:30px}
}
.adventure-progress{margin-top:18px;margin-bottom:22px;background:linear-gradient(90deg,#fff4cc,#fff9e9);border-color:#ead7a0;box-shadow:0 8px 22px #4b36220d}
.adventure-progress>div:first-child h2{font-size:clamp(25px,2.5vw,34px)}
.adventure-launch{margin-top:0;background:transparent;border:0;box-shadow:none;padding:0 0 56px}
.adventure-launch-copy{display:none}
.adventure-launch-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:0}
.adventure-choice{grid-template-columns:1fr;grid-template-rows:auto auto auto;text-align:left;gap:4px;min-height:142px;padding:22px;border:0;box-shadow:none;border-radius:18px}
.adventure-choice>span{grid-row:auto;font-size:35px;margin-bottom:4px}.adventure-choice strong{font-family:Georgia,'Times New Roman',serif;font-size:21px;color:#33224c}.adventure-choice small{font-size:14px;line-height:1.35}
.adventure-choice--map{background:#eef4df}.adventure-choice--stickers{background:#f2ecfb}.adventure-choice--lantern{background:#fff1cf}.adventure-choice--book{background:#eaf4fb}
.adventure-choice:hover,.adventure-choice:focus-visible{box-shadow:0 7px 20px #3f285d14;transform:translateY(-2px)}
.who-today{grid-template-columns:minmax(0,.9fr) minmax(280px,1.1fr);padding:38px 0 52px;border:0;margin:0 auto 20px;overflow:hidden}
.who-today-copy{padding-left:clamp(0px,2vw,24px)}.who-today-copy h2{font-size:clamp(40px,4vw,58px);color:#3f285d}.who-today-copy p:not(.eyebrow){font-size:17px;max-width:520px;line-height:1.6}.who-today-visual{min-height:330px;position:relative;background:radial-gradient(ellipse at 50% 88%,#f5e7b9 0,#f7efd6 30%,transparent 66%)}
.who-today-visual:after{content:'Small steps lead to big adventures!  ♥';position:absolute;right:5%;bottom:16%;max-width:155px;color:#5d3f87;font:italic 700 18px/1.25 Georgia,serif;transform:rotate(-5deg)}
.who-today-visual img{width:min(330px,72%);max-height:310px;object-fit:contain;filter:drop-shadow(0 13px 16px #432d5120)}
.story{padding-block:62px 72px}.world{padding-top:24px}.world .section-heading{max-width:760px}.world .section-heading h2{font-size:clamp(40px,4.5vw,62px)}
.map-frame{background:#fff;border:1px solid #eadfca;padding:12px;box-shadow:0 12px 28px #45325d0d}.map-frame>figcaption{padding:12px 6px 3px}
.directory-section{padding-block:44px 70px}.portrait-card{box-shadow:0 5px 14px #3f285d0d}.portrait-visual{background:linear-gradient(145deg,#f3f7e8,#f5eff9 55%,#fff3d8)}
.book-gateway{background:linear-gradient(135deg,#f1edf8,#edf6f4);border:1px solid #e1d8e9}.invitation{background:linear-gradient(110deg,#3d245d,#573574);border-radius:22px;color:#fff}.invitation .eyebrow,.invitation p,.invitation h2{color:#fff}.invitation .button{margin-top:8px}
@media(max-width:900px){.adventure-launch-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.who-today{grid-template-columns:1fr 1fr}.who-today-visual:after{display:none}}
@media(max-width:600px){.adventure-launch-actions{grid-template-columns:1fr 1fr}.adventure-choice{min-height:126px;padding:17px}.adventure-choice strong{font-size:18px}.who-today{grid-template-columns:1fr}.who-today-visual{min-height:230px}.who-today-visual img{max-height:220px}.adventure-progress{padding:20px}.progress-counters{display:grid;grid-template-columns:1fr 1fr 1fr}.progress-counters a{min-width:0;padding:10px}.progress-counters .progress-icon{font-size:21px}.progress-counters strong{font-size:15px}.progress-counters small{font-size:11px}}
@media(max-width:390px){.adventure-launch-actions{grid-template-columns:1fr}.progress-counters{grid-template-columns:1fr}.adventure-choice{min-height:104px}}
/* Trail clarity hotfix */
.trail-stop{position:relative;padding-top:52px}
.trail-stop-status{position:absolute;top:16px;right:16px;padding:5px 9px;border-radius:999px;background:#f2ede7;color:#6b6070;font-size:12px;font-weight:800;letter-spacing:.02em}
.trail-stop.is-found{border-color:#d8a83d;background:#fff9e8;box-shadow:0 0 0 2px #f3d77c55 inset}
.trail-stop.is-found .trail-stop-status{background:#ffe28a;color:#4a3155}

/* 2026-09-17 homepage character + anchor navigation refinement */
html{scroll-padding-top:120px}
#map,#family,#creatures,#about{scroll-margin-top:120px}
.who-today-visual{min-height:230px}
.who-today-visual img{width:auto;max-width:min(230px,58%);height:auto;max-height:225px}
@media(max-width:900px){html{scroll-padding-top:155px}#map,#family,#creatures,#about{scroll-margin-top:155px}.who-today-visual{min-height:200px}.who-today-visual img{max-width:min(190px,55%);max-height:190px}}
@media(max-width:600px){html{scroll-padding-top:175px}#map,#family,#creatures,#about{scroll-margin-top:175px}.who-today-visual{min-height:165px}.who-today-visual img{max-width:150px;max-height:155px}}
.anchor-target{display:block;height:0;position:relative;top:-8px;scroll-margin-top:120px}
@media(max-width:900px){.anchor-target{scroll-margin-top:155px}}
@media(max-width:600px){.anchor-target{scroll-margin-top:175px}}

/* iPad/tablet featured-character sizing — keep desktop presentation unchanged */
@media (min-width: 601px) and (max-width: 1366px) {
  .who-today-visual { min-height: 215px; }
  .who-today-visual img[data-today-image] {
    width: auto;
    height: auto;
    max-width: min(210px, 48%);
    max-height: 210px;
  }
}
@media (min-width: 901px) and (max-width: 1366px) and (orientation: landscape) {
  .who-today-visual img[data-today-image] {
    max-width: min(225px, 46%);
    max-height: 220px;
  }
}

/* 2026-09-17 definitive iPad featured-character fix.
   Explicit dimensions + !important prevent earlier homepage image rules winning in Safari. */
@media screen and (min-width: 601px) and (max-width: 1366px) {
  .who-today .who-today-visual {
    min-height: 220px !important;
    height: 220px !important;
    overflow: hidden !important;
  }
  .who-today .who-today-visual > img[data-today-image] {
    display: block !important;
    width: 180px !important;
    height: 210px !important;
    max-width: 180px !important;
    max-height: 210px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}
@media screen and (min-width: 601px) and (max-width: 900px) {
  .who-today .who-today-visual > img[data-today-image] {
    width: 165px !important;
    height: 195px !important;
    max-width: 165px !important;
    max-height: 195px !important;
  }
}

/* =========================================================
   Collyvale universal action button system — 2026-09-19
   One component site-wide; tiny contextual icon changes only.
   ========================================================= */
:root{
  --cv-button-bg:#f6c957;
  --cv-button-bg-hover:#ffda72;
  --cv-button-ink:#3f285d;
  --cv-button-border:#d5a83c;
  --cv-button-shadow:rgba(63,40,93,.18);
  --cv-button-focus:#76508f;
}
.button,
.button.yellow,
.sticker-download,
.sticker-reset-button,
.trail-lantern-button,
.pottle-find button{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:48px;
  padding:.72rem 1.08rem;
  border:1px solid var(--cv-button-border);
  border-radius:15px;
  background:linear-gradient(180deg,#ffe18a 0%,var(--cv-button-bg) 100%);
  color:var(--cv-button-ink);
  box-shadow:0 5px 12px var(--cv-button-shadow),inset 0 1px 0 rgba(255,255,255,.72);
  font:inherit;
  font-size:15px;
  line-height:1.25;
  font-weight:900;
  text-decoration:none;
  text-align:center;
  white-space:normal;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.button::before,
.sticker-download::before,
.sticker-reset-button::before,
.pottle-find button::before{
  content:"🏮";
  flex:0 0 auto;
  font-size:1.05em;
  line-height:1;
}
.trail-lantern-button::before{content:"🏮";font-size:1.08em;filter:none}
.button:hover,.button.yellow:hover,.sticker-download:hover,.sticker-reset-button:hover,.trail-lantern-button:hover,.pottle-find button:hover{
  transform:translateY(-2px);
  background:linear-gradient(180deg,#ffe9a6 0%,var(--cv-button-bg-hover) 100%);
  box-shadow:0 8px 18px rgba(63,40,93,.20),0 0 0 3px rgba(246,201,87,.16);
  filter:none;
}
.button:active,.sticker-download:active,.sticker-reset-button:active,.trail-lantern-button:active,.pottle-find button:active{
  transform:translateY(0);
  box-shadow:0 3px 8px rgba(63,40,93,.16),inset 0 1px 2px rgba(63,40,93,.08);
}
.button:focus-visible,.sticker-download:focus-visible,.sticker-reset-button:focus-visible,.trail-lantern-button:focus-visible,.pottle-find button:focus-visible{
  outline:3px solid var(--cv-button-focus);
  outline-offset:3px;
}
/* Contextual story icons: same button, only the tiny leading symbol changes. */
.button[download]::before,.button[href*="download"]::before{content:"✏️"}
.button[href*="book"]::before{content:"📖"}
.button[href*="sticker"]::before,.sticker-download::before{content:"⭐"}
.button[href*="postbox"]::before{content:"💌"}
.button[href*="map"]::before{content:"🏮"}
.button[href*="lantern"]::before{content:"🏮"}
.button[href*="things-to-do"]::before,.button[href^="#colour"]::before{content:"✏️"}
.button[href*="school"]::before,.button[href*="miss-harper"]::before{content:"🎒"}
.button[href*="lost-deliveries"]::before{content:"📮"}
.sticker-reset-button::before{content:"↻"}
.trail-lantern-button.is-found{background:linear-gradient(180deg,#fff0a7 0%,#ffe078 100%);box-shadow:0 6px 18px rgba(239,183,63,.35),0 0 0 3px rgba(239,183,63,.15)}
@media(max-width:480px){
  .button,.button.yellow,.sticker-download,.sticker-reset-button,.trail-lantern-button,.pottle-find button{min-height:50px;padding:.78rem 1rem}
}
@media(prefers-reduced-motion:reduce){
  .button,.button.yellow,.sticker-download,.sticker-reset-button,.trail-lantern-button,.pottle-find button{transition:none}
  .button:hover,.button.yellow:hover,.sticker-download:hover,.sticker-reset-button:hover,.trail-lantern-button:hover,.pottle-find button:hover{transform:none}
}


/* Mrs Bramble's Bakery — map location */
.map-hotspot--bakery{left:18%;top:40%;width:15%;height:15%}
.map-place-label{position:absolute;z-index:3;text-decoration:none;font-weight:900;font-size:clamp(.58rem,1.15vw,.82rem);line-height:1.05;color:#4b2b63;background:#fff6dcf2;border:1px solid #b88b62;border-radius:999px;padding:.42em .7em;box-shadow:0 3px 10px rgba(70,43,50,.18);transform:rotate(-2deg)}
.map-place-label--bakery{left:15%;top:49%}
.map-place-label:hover,.map-place-label:focus-visible{background:#fff;outline:3px solid #f1c95b;outline-offset:2px}
@media(max-width:640px){.map-place-label{font-size:.52rem;padding:.34em .55em}.map-hotspot--bakery{left:16%;top:39%;width:18%;height:18%}}

/* Illustrated bakery marker on the established Collyvale map */
.map-bakery-marker{position:absolute;z-index:4;left:13.5%;top:42%;width:18%;max-width:150px;text-decoration:none;color:#4b2b63;background:#fffaf1;border:2px solid #f1c95b;border-radius:16px;padding:4px;box-shadow:0 7px 18px rgba(67,42,62,.22);transform:rotate(-2deg);transition:transform .18s ease,box-shadow .18s ease}
.map-bakery-marker img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:11px}
.map-bakery-marker span{display:block;padding:.32rem .25rem .22rem;text-align:center;font-size:clamp(.52rem,1vw,.72rem);line-height:1.05;font-weight:900}
.map-bakery-marker:hover,.map-bakery-marker:focus-visible{transform:rotate(0deg) translateY(-3px) scale(1.03);box-shadow:0 10px 24px rgba(67,42,62,.28);outline:3px solid #fff;outline-offset:2px}
@media(max-width:640px){.map-bakery-marker{left:12%;top:41%;width:21%;padding:2px;border-radius:10px}.map-bakery-marker img{border-radius:7px}.map-bakery-marker span{font-size:.46rem}}

/* Definitive Collyvale map: invisible accessible click regions */
.map-bakery-marker,.map-place-label--bakery{display:none!important}
.final-map-hotspot{position:absolute!important;z-index:3;background:transparent!important;border:0!important;border-radius:18px}
.final-map-hotspot:hover,.final-map-hotspot:focus-visible{background:rgba(255,244,179,.13)!important;outline:3px solid rgba(255,211,82,.88);outline-offset:1px}
.h-woods{left:2%;top:4%;width:25%;height:28%}.h-shop{left:26%;top:10%;width:20%;height:24%}.h-school{left:46%;top:9%;width:22%;height:22%}.h-cottage{left:69%;top:3%;width:28%;height:24%}
.h-postbox{left:2%;top:28%;width:25%;height:22%}.h-green{left:30%;top:30%;width:30%;height:23%}.h-pebble{left:78%;top:27%;width:20%;height:27%}.h-quilt{left:2%;top:52%;width:25%;height:25%}
.h-bakery{left:36%;top:53%;width:25%;height:27%}.h-river{left:60%;top:48%;width:20%;height:28%}.h-professors{left:78%;top:53%;width:20%;height:27%}


/* Interactive Who can help with my wobble? navigator */
.wobble-hero{position:relative;overflow:hidden;text-align:center;padding:clamp(2.4rem,7vw,5.6rem) 1rem 3rem;background:linear-gradient(180deg,#bfe6ff 0%,#eaf7ff 58%,#f8f2d8 100%)}
.wobble-hero:before,.wobble-hero:after{content:"";position:absolute;bottom:-70px;width:360px;height:180px;border-radius:50%;background:rgba(104,181,97,.18)}
.wobble-hero:before{left:-80px}.wobble-hero:after{right:-90px}
.wobble-hero-inner{position:relative;z-index:1}
.wobble-hero h1{max-width:900px;margin:.2rem auto .65rem;font-size:clamp(2.7rem,7vw,5.8rem);line-height:.93;color:#123f91;letter-spacing:-.04em}
.wobble-hero h1 span{background:linear-gradient(90deg,#159ad6,#e32684,#22a45c,#8a42b5);-webkit-background-clip:text;background-clip:text;color:transparent}
.wobble-hero p:not(.eyebrow){font-size:clamp(1.05rem,2vw,1.35rem);color:#183c72}
.wobble-navigator{margin-top:-1.4rem;position:relative;z-index:2;padding-bottom:4rem}
.wobble-grid{background:#fff;border-radius:32px;padding:14px;box-shadow:0 18px 50px rgba(39,76,117,.14);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.wobble-card{min-width:0;position:relative;overflow:hidden;border-radius:24px;text-decoration:none;color:#15356f;display:flex;flex-direction:column;min-height:390px;transition:transform .18s ease,box-shadow .18s ease}
.wobble-card:hover,.wobble-card:focus-visible{transform:translateY(-5px);box-shadow:0 12px 26px rgba(39,76,117,.18);outline:4px solid #ffd45b;outline-offset:2px}
.wobble-feeling{font-weight:800;font-size:clamp(1rem,1.55vw,1.25rem);line-height:1.15;text-align:center;padding:18px 10px 8px;min-height:72px}
.wobble-picture{display:flex;align-items:flex-end;justify-content:center;height:230px;padding:4px 10px 0}
.wobble-picture img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.wobble-card-copy{position:relative;background:rgba(255,255,255,.86);margin-top:auto;padding:12px 42px 13px 14px;display:flex;flex-direction:column;min-height:78px}
.wobble-card-copy strong{font-size:1.22rem}.wobble-card-copy small{font-size:.92rem;line-height:1.15;margin-top:3px}
.wobble-arrow{position:absolute;right:11px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#fff;color:#164a9a;font-size:1.7rem;font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.wobble-worried,.wobble-school{background:#ffe9ef}.wobble-overwhelmed,.wobble-wait{background:#e3f4ff}.wobble-comfort,.wobble-help{background:#fff2d8}.wobble-angry{background:#fbe5ee}.wobble-unsure,.wobble-mistake{background:#e9f9e9}.wobble-shy{background:#eee8ff}
.wobble-reassure{margin:18px auto 12px;padding:18px 24px;max-width:850px;border-radius:24px;background:#fff7ee;text-align:center;box-shadow:0 8px 24px rgba(64,75,100,.08)}
.wobble-reassure strong,.wobble-reassure span{display:block}.wobble-reassure strong{font-size:1.35rem;color:#27427b}.wobble-reassure span{margin-top:4px}
.wobble-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:18px 0}
.wobble-grownup-note{max-width:820px;margin:26px auto 0;padding:16px 20px;border-radius:18px;background:#f5f0ff;color:#493f65;text-align:center;font-size:.95rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1050px){.wobble-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.wobble-grid{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:24px;padding:9px;gap:9px}.wobble-card{min-height:330px;border-radius:19px}.wobble-picture{height:190px}.wobble-feeling{min-height:66px;padding:14px 7px 6px}.wobble-card-copy{padding-left:10px}.wobble-card-copy strong{font-size:1.05rem}}
@media(max-width:430px){.wobble-grid{grid-template-columns:1fr}.wobble-card{min-height:360px}.wobble-picture{height:230px}}

/* Expanded Collyvale Postbox helper chooser */
.postbox-helper-option{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:.42rem;min-height:190px;padding:1rem .7rem}
.postbox-helper-thumb{width:104px;height:104px;object-fit:contain;display:block}
.postbox-helper-option strong{font-size:1.05rem}
.postbox-helper-role{font-size:.88rem;line-height:1.25;color:var(--ink-soft,#62556a)}
.postbox-helper-note{text-align:center;margin:1rem auto 0;max-width:34rem;color:var(--ink-soft,#62556a)}
@media (max-width:680px){.postbox-helper-option{min-height:165px}.postbox-helper-thumb{width:86px;height:86px}}

/* Postbox: fun-first polish */
.postbox-helper-option{transition:transform .18s ease,box-shadow .18s ease}
.postbox-helper-option:hover,.postbox-helper-option:focus-visible{transform:translateY(-4px) rotate(-.35deg)}
.postbox-delivery.is-collecting::after{content:"SQUEAK!";position:absolute;right:8%;top:12%;font-weight:900;color:#6c4b7e;transform:rotate(8deg);animation:postbox-pop .7s ease both}
.postbox-delivery.is-glowing::before{content:"🦋";position:absolute;left:8%;top:18%;font-size:1.7rem;animation:postbox-butterfly 2.4s ease-in-out both}
@keyframes postbox-pop{0%{opacity:0;transform:scale(.4) rotate(8deg)}55%{opacity:1;transform:scale(1.12) rotate(-5deg)}100%{opacity:.85;transform:scale(1) rotate(8deg)}}
@keyframes postbox-butterfly{0%{opacity:0;transform:translate(0,25px) rotate(-12deg)}30%{opacity:1}100%{opacity:0;transform:translate(230px,-35px) rotate(14deg)}}
@media (prefers-reduced-motion:reduce){.postbox-helper-option:hover,.postbox-helper-option:focus-visible{transform:none}.postbox-delivery.is-collecting::after,.postbox-delivery.is-glowing::before{animation:none}}

/* Fun-first Postbox copy + Bibbleflump */
.postbox-helper-role em{display:inline-block;margin-top:.35rem;font-size:.82rem;line-height:1.25;opacity:.82}
.postbox-silly-helper{border-style:dashed}
.postbox-silly-icon{display:grid;place-items:center;width:104px;height:104px;font-size:4.2rem;line-height:1;transform:rotate(8deg)}
.postbox-silly-helper:hover .postbox-silly-icon{transform:rotate(-8deg) scale(1.06)}
@media(max-width:680px){.postbox-silly-icon{width:86px;height:86px;font-size:3.5rem}}
@media(prefers-reduced-motion:reduce){.postbox-silly-helper:hover .postbox-silly-icon{transform:rotate(8deg)}}

/* Homepage published-book feature — iPad/desktop visual upgrade, 21 Sep 2026 */
.book-gateway.book-launch-feature{
  position:relative;
  grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);
  gap:clamp(32px,5vw,72px);
  align-items:center;
  min-height:480px;
  padding:clamp(64px,7vw,82px) clamp(34px,6vw,72px) clamp(38px,5vw,58px);
  background:
    radial-gradient(circle at 17% 28%,rgba(255,216,112,.42),transparent 26%),
    radial-gradient(circle at 82% 76%,rgba(174,224,217,.32),transparent 31%),
    linear-gradient(135deg,#f7f0fb 0%,#fff9e9 48%,#eef8f5 100%);
  border:1px solid #e5d8e8;
  box-shadow:0 18px 44px rgba(66,43,82,.09);
  overflow:hidden;
}
.book-launch-feature .book-launch-badge{
  position:absolute;top:22px;left:28px;z-index:3;
  display:inline-flex;align-items:center;gap:.45rem;
  width:auto;padding:8px 13px;border-radius:999px;
  background:#fff;color:#4b315e;border:1px solid rgba(75,49,94,.13);
  box-shadow:0 5px 14px rgba(75,49,94,.08);
  font-size:12px;font-weight:900;letter-spacing:.08em;
}
.book-launch-feature .book-launch-badge:before{content:"★";color:#e1aa2d}
.book-launch-visual{
  position:relative;isolation:isolate;min-height:340px;margin:0;
  display:grid;place-items:center;text-align:center;
}
.book-launch-visual:before{
  content:"";position:absolute;z-index:-1;width:min(340px,90%);aspect-ratio:1;
  border-radius:48% 52% 46% 54% / 54% 43% 57% 46%;
  background:linear-gradient(145deg,#ffe9a9,#f1d9f6 58%,#dcefea);
  transform:rotate(-7deg);
  box-shadow:inset 0 0 0 1px rgba(83,52,99,.06);
}
.book-gateway.book-launch-feature .book-launch-visual img{
  width:auto!important;max-width:250px!important;height:300px!important;max-height:300px!important;
  object-fit:contain!important;margin:0 auto!important;
  filter:drop-shadow(0 18px 18px rgba(67,45,81,.18));
}
.book-launch-visual figcaption{
  position:absolute;bottom:2px;left:50%;transform:translateX(-50%) rotate(-2deg);
  width:max-content;max-width:90%;padding:8px 12px;border-radius:12px;
  background:rgba(255,255,255,.9);color:#553969;
  font:700 15px/1.25 Georgia,'Times New Roman',serif;
  box-shadow:0 5px 14px rgba(67,45,81,.08);
}
.book-launch-spark{position:absolute;color:#d9a633;font-size:26px}
.book-launch-spark--one{left:9%;top:22%}.book-launch-spark--two{right:8%;top:12%;font-size:18px}
.book-launch-feature .book-gateway-copy{max-width:650px}
.book-launch-feature .book-gateway-copy .eyebrow{margin-bottom:10px;color:#76568d;font-weight:900}
.book-launch-feature .book-gateway-copy h2{
  margin:0 0 16px;color:#43265e;font-size:clamp(42px,4.7vw,68px);line-height:.98;letter-spacing:-.035em
}
.book-launch-feature .book-gateway-copy h2 span{display:block;font-size:.72em;letter-spacing:-.02em}
.book-launch-lead{max-width:590px;margin:0;color:#5f5367!important;font-size:17px;line-height:1.62!important}
.book-launch-pills{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 2px}
.book-launch-pills span{padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(78,52,92,.12);font-size:12px;font-weight:800;color:#624c70}
.book-launch-feature .book-gateway-actions{gap:11px 13px;margin-top:22px}
.book-launch-feature .book-buy-button{order:1}
.book-launch-feature .book-read-button{order:2}
.book-launch-feature .book-meet-link{order:3;flex-basis:100%;margin-top:2px;font-weight:850}
.book-launch-feature .paperback-note{margin:13px 0 0;font-size:13px;color:#75677c!important}

/* iPad portrait + landscape: keep the feature balanced and stop the empty-left-panel effect. */
@media screen and (min-width:700px) and (max-width:1366px){
  .book-gateway.book-launch-feature{
    grid-template-columns:minmax(245px,.78fr) minmax(360px,1.22fr)!important;
    gap:clamp(26px,4vw,48px)!important;
    min-height:430px;padding:68px 34px 40px!important
  }
  .book-launch-visual{min-height:300px!important}
  .book-gateway.book-launch-feature .book-launch-visual img{
    width:auto!important;height:255px!important;max-width:215px!important;max-height:255px!important
  }
  .book-launch-feature .book-gateway-copy h2{font-size:clamp(42px,5vw,58px)}
  .book-launch-feature .book-gateway-actions .button{width:auto!important;max-width:100%}
}
@media screen and (min-width:700px) and (max-width:900px) and (orientation:portrait){
  .book-gateway.book-launch-feature{grid-template-columns:minmax(210px,.7fr) minmax(330px,1.3fr)!important;padding-inline:26px!important}
  .book-gateway.book-launch-feature .book-launch-visual img{height:225px!important;max-height:225px!important;max-width:190px!important}
  .book-launch-visual{min-height:270px!important}
  .book-launch-feature .book-gateway-copy h2{font-size:43px}
}
@media(max-width:699px){
  .book-gateway.book-launch-feature{grid-template-columns:1fr!important;padding:70px 22px 30px!important;gap:22px!important}
  .book-launch-feature .book-launch-badge{left:20px;top:18px}
  .book-launch-visual{order:0;min-height:250px!important}
  .book-gateway.book-launch-feature .book-launch-visual img{height:220px!important;max-height:220px!important;max-width:185px!important}
  .book-launch-visual figcaption{font-size:13px}
  .book-launch-feature .book-gateway-copy{order:1;text-align:left}
  .book-launch-feature .book-gateway-copy h2{font-size:42px}
  .book-launch-feature .book-gateway-actions{display:grid;grid-template-columns:1fr}
  .book-launch-feature .book-gateway-actions .button{width:100%;justify-content:center;text-align:center}
}


/* 2026-09-22: make the grown-ups route easy to find without taking over the child-facing navigation. */
.site-header nav .nav-grownups {
  padding: 8px 13px;
  border: 1px solid #d7c2e7;
  border-radius: 999px;
  background: #f4edf9;
  color: #3f285d;
}
.site-header nav .nav-grownups:hover,
.site-header nav .nav-grownups:focus-visible {
  background: #eadcf4;
  text-decoration: none;
}
.grownups-home {
  margin-block: 34px 64px;
  padding: clamp(28px,4vw,46px);
  border: 2px solid #dfcbea;
  border-radius: 24px;
  background: linear-gradient(135deg,#fff8e7 0%,#f5eef9 100%);
  box-shadow: 0 12px 28px #3f285d14;
}
.grownups-home h2 { max-width: 760px; margin-top: 6px; }
.grownups-home > p { max-width: 780px; }
.grownups-home-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  margin-top: 22px;
}
.grownups-home-grid a {
  display: block;
  padding: 14px 16px;
  border-radius: 14px;
  background: #fffdf7;
  border: 1px solid #eadfce;
  font-weight: 800;
  text-decoration: none;
}
.grownups-home-grid a:hover,
.grownups-home-grid a:focus-visible { background: #fff4d8; }
@media(max-width:700px) {
  .site-header nav .nav-grownups { border-radius: 16px; }
  .grownups-home-grid { grid-template-columns: 1fr; }
}


/* 2026-09-22 — Collyvale four-category dropdown navigation */
.site-header{position:relative;z-index:1000;overflow:visible}
.site-header .colly-nav{margin-left:auto;position:relative;overflow:visible}
.colly-nav-toggle{display:none}
.colly-nav-groups{display:flex;align-items:center;gap:clamp(5px,1vw,14px)}
.colly-nav-group{position:relative}
.site-header .colly-nav-parent{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-size:15px;font-weight:850;line-height:1.2;padding:11px 12px;border-radius:14px;cursor:pointer;white-space:nowrap}
.site-header .colly-nav-parent:hover,.site-header .colly-nav-parent:focus-visible,.colly-nav-group.is-open>.colly-nav-parent{background:#f5edff;outline:none}
.colly-nav-parent span{display:inline-block;margin-left:3px;transition:transform .18s ease}
.colly-nav-group.is-open>.colly-nav-parent span{transform:rotate(180deg)}
.colly-nav-dropdown{position:absolute;top:calc(100% + 7px);left:0;width:max-content;min-width:235px;max-width:310px;padding:10px;background:#fffaf1;border:1px solid rgba(91,58,119,.15);border-radius:18px;box-shadow:0 16px 38px rgba(67,43,87,.16);opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity .15s ease,transform .15s ease,visibility .15s;z-index:1200}
.colly-nav-group:nth-last-child(-n+2) .colly-nav-dropdown{left:auto;right:0}
.site-header .colly-nav-dropdown a{display:block;font-size:14px;font-weight:750;line-height:1.3;padding:9px 11px;border-radius:11px;color:inherit;text-decoration:none;white-space:normal}
.site-header .colly-nav-dropdown a:hover,.site-header .colly-nav-dropdown a:focus-visible{background:#f3eaff;text-decoration:none;outline:2px solid rgba(112,69,145,.25);outline-offset:1px}
@media (hover:hover) and (pointer:fine){.colly-nav-group:hover>.colly-nav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}}
.colly-nav-group.is-open>.colly-nav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.colly-nav-group--grown>.colly-nav-parent{background:#f2e8ff;color:#513169}
.colly-nav-group--grown>.colly-nav-parent:hover,.colly-nav-group--grown>.colly-nav-parent:focus-visible{background:#e8d7fb}
@media(max-width:900px){
 .site-header{align-items:center;flex-wrap:wrap}
 .site-header .colly-nav{margin-left:auto}
 .colly-nav-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(91,58,119,.18);background:#fff8ed;color:#4c2e61;border-radius:14px;padding:10px 13px;font:inherit;font-weight:850;cursor:pointer}
 .colly-nav-groups{display:none;position:absolute;right:0;top:calc(100% + 8px);width:min(88vw,370px);max-height:min(72vh,650px);overflow:auto;padding:10px;background:#fffaf1;border:1px solid rgba(91,58,119,.15);border-radius:20px;box-shadow:0 18px 45px rgba(67,43,87,.18)}
 .colly-nav.is-menu-open .colly-nav-groups{display:block}
 .colly-nav-group{width:100%}
 .site-header .colly-nav-parent{display:flex;width:100%;justify-content:space-between;align-items:center;font-size:16px;padding:13px 14px;text-align:left}
 .colly-nav-dropdown{position:static;width:auto;min-width:0;max-width:none;padding:0 7px 8px;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;opacity:1;visibility:visible;transform:none;display:none}
 .colly-nav-group.is-open>.colly-nav-dropdown{display:block}
 .site-header .colly-nav-dropdown a{font-size:15px;padding:11px 13px;background:#fff;border:1px solid rgba(91,58,119,.08);margin:5px 0;border-radius:12px}
}
@media(max-width:480px){.site-header .wordmark-copy strong{font-size:25px}.site-header .wordmark img{width:44px;height:44px}.colly-nav-toggle{padding:9px 11px}}


/* Collyvale five-part navigation rollout 2026-10-05 */
.site-header .nav-direct{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
@media(max-width:900px){.site-header .colly-nav-groups .nav-direct{display:flex;width:100%;justify-content:flex-start;text-align:left;padding:13px 14px}}
