/* The reader's companion. Shared paint, paper and timber with the original art. */
.companion-site { --rail: 0px; }
.companion-site main { margin: 0; }
.companion-site :is(h1,h2,h3) { font-family: var(--display); line-height: 1.1; }
.companion-site h1 { font-size: clamp(42px,6.5vw,88px); }
.companion-site h2 { font-size: clamp(34px,4.2vw,58px); }
.companion-site h3 { font-size: clamp(24px,2.4vw,32px); }
.companion-site :is(h1,h2) em { color: var(--signal-hi); font-style: normal; }
.companion-site button { touch-action: manipulation; }
.companion-site :is(button,a,input,select,summary):focus-visible { outline: 3px solid var(--drift-hi); outline-offset: 5px; }
.companion-header { display:flex;align-items:center;justify-content:space-between;gap:30px;padding:22px 4vw;background:var(--slough-deep);border-bottom:1px solid var(--edge);position:relative;z-index:5; }
.companion-header .wordmark {font-size:28px;white-space:nowrap;line-height:1.2;}
.companion-header .wordmark small {display:block;color:var(--muted);font:10px var(--ledger);letter-spacing:.14em;margin-top:8px;}
.companion-header nav {display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px;}
.companion-header nav a {color:var(--paper);text-decoration:none;font:14px var(--ledger);padding:12px 0;min-height:44px;display:flex;align-items:center;}
.companion-header nav a:hover {color:var(--drift-hi);}
.sound-control {background:var(--plank);border:1px solid var(--edge);min-height:48px;color:var(--paper);font:13px var(--ledger);padding:10px 14px;cursor:pointer;}
.sound-control[aria-pressed=true] {color:var(--drift-hi);border-color:var(--drift);}
.encounter-grid img {width:100%;height:200px;object-fit:contain;margin-bottom:25px;background:radial-gradient(ellipse,#e4ddc8,#b6b3a1);}
.companion-section {max-width:1320px;margin:0 auto;padding:clamp(52px,7vw,100px) var(--gut);}
.companion-hero {position:relative;min-height:740px;display:flex;align-items:center;padding:70px max(var(--gut),calc((100vw - 1240px)/2));isolation:isolate;overflow:hidden;}
.companion-hero > img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;object-position:60% center;}
.companion-hero::after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0c100ef2,#0c100eb8 36%,#0c100e10 85%),linear-gradient(0deg,#0c100edb,transparent 30%);}
.companion-hero-copy {max-width:770px;padding-bottom:85px;}
.companion-hero-copy h1 {font-size:clamp(44px,5.8vw,82px);max-width:15ch;letter-spacing:-.02em;}
.companion-hero-copy > p:not(.plate) {margin:25px 0 30px;font-size:clamp(19px,2vw,24px);max-width:40ch;}
.companion-actions {display:flex;align-items:center;flex-wrap:wrap;gap:18px 25px;}
.text-link {background:none;border:0;padding:12px 0;display:inline-block;min-height:48px;cursor:pointer;color:var(--drift-hi);font:16px/1.5 var(--ledger);text-decoration:underline;text-underline-offset:5px;}
.hero-fieldline {position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:24px;padding:25px 4vw;border-top:1px solid #f2ede144;font:12px var(--ledger);letter-spacing:.08em;}
.hero-fieldline a {color:var(--paper);}
.companion-welcome {display:flex;justify-content:space-between;gap:20px;align-items:center;padding:25px 4vw;border-bottom:1px solid var(--hair);font:16px var(--ledger);}
.companion-welcome p {margin:0;color:var(--signal-hi);}
.companion-welcome span {color:var(--muted);}
.section-intro {display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:end;margin-bottom:38px;}
.section-intro > p {color:var(--muted);max-width:45ch;}
.entry-grid,.book-resource-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px;}
.entry-grid > a,.book-resource-grid > a {display:block;text-decoration:none;color:var(--paper);padding:30px;border:1px solid var(--edge);background:var(--plank);}
.entry-grid > a:hover,.book-resource-grid > a:hover {border-color:var(--drift);}
.entry-grid :is(h2,h3),.book-resource-grid h3 {margin:24px 0 16px;}
.entry-grid p,.book-resource-grid p {color:var(--muted);font-size:17px;}
.entry-grid a>span:last-child,.book-resource-grid a>span:last-child {font:14px var(--ledger);color:var(--drift-hi);}
.companion-shelf {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:46px 25px;margin-top:40px;}
.guide-cover {text-decoration:none;color:var(--paper);min-width:0;}
.guide-cover img {width:100%;aspect-ratio:5/8;object-fit:contain;filter:drop-shadow(8px 12px 10px #0005);transition:transform .25s;}
.guide-cover:hover img {transform:translateY(-7px) rotate(-1deg);}
.guide-cover .ledger {display:block;color:var(--signal-hi);font-size:11px;margin:22px 0 8px;}
.guide-cover :is(h2,h3) {font-size:24px;}
.guide-cover-person {display:block;font-size:15px;margin-top:10px;color:var(--muted);}
.story-scene {position:relative;isolation:isolate;min-height:650px;display:flex;align-items:center;padding:70px 6vw;overflow:hidden;}
.story-scene>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.story-scene::after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0c100eec,#0c100e99 38%,#0c100e00 80%),linear-gradient(0deg,#0c100eaa,transparent 25%);}
.story-scene-copy {max-width:470px;}
.story-scene-copy h2 {font-size:clamp(42px,5.5vw,76px);}
.story-scene-copy>p:not(.plate) {font-size:21px;margin:25px 0;}
.scene-caption {position:absolute;bottom:22px;right:4vw;font:12px var(--ledger);letter-spacing:.1em;text-shadow:0 2px 5px #000;}
.crew-lineup {display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-items:end;gap:8px;margin:30px 0;}
.crew-lineup>a {text-align:center;text-decoration:none;color:var(--paper);font:14px var(--ledger);}
.crew-lineup img {width:100%;height:265px;object-fit:contain;object-position:bottom;}
.crew-lineup span {display:block;padding-top:20px;}
.law-records {display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:40px;}
.law-records article {padding:30px 0;border-top:3px solid var(--paper);}
.law-records h3 {color:var(--housepaint);font-size:34px;margin:18px 0 20px;max-width:16ch;}
.law-records a {font:14px var(--ledger);}
.closing-companion {text-align:center;}
.closing-companion p:not(.plate) {margin:25px auto;max-width:48ch;}
.companion-footer {display:grid;grid-template-columns:1.2fr 1fr;gap:35px;padding:60px 5vw 30px;background:var(--slough-deep);border-top:1px solid var(--edge);}
.companion-footer .wordmark {display:inline-block;margin-bottom:20px;}
.companion-footer .ledger {font-size:13px;color:var(--muted);}
.companion-footer nav {display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;align-content:start;}
.companion-footer nav a {font:14px/1.5 var(--ledger);min-height:44px;}
.companion-rights {grid-column:1/-1;max-width:100ch;font:12px/1.7 var(--ledger);color:var(--faint);}
.archive-banner {position:relative;isolation:isolate;min-height:470px;padding:80px 6vw;overflow:hidden;}
.archive-banner>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;object-position:center 40%;}
.archive-banner::after {content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0c100ee8,#0c100e30);z-index:-1;}
.archive-banner>div {max-width:880px;}
.archive-banner h1 {font-size:clamp(40px,5vw,68px);}
.archive-banner p:not(.plate) {max-width:56ch;margin-top:22px;}
.reading-progress {display:grid;grid-template-columns:1fr 1.1fr;gap:30px;background:var(--plank);border:1px solid var(--edge);padding:25px;margin:20px 0;}
.reading-progress label {display:block;font:14px var(--ledger);margin-bottom:12px;color:var(--signal-hi);}
.reading-progress select {width:100%;min-height:52px;background:var(--slough);border:1px solid var(--edge);color:var(--paper);padding:10px;font:16px var(--body);}
.reading-progress>p {font-size:15px;align-self:center;color:var(--muted);}
.passport-strip {display:flex;justify-content:space-between;gap:24px;align-items:center;border:1px solid var(--drift-dim);padding:22px 26px;margin:22px 0 42px;text-decoration:none;}
.passport-strip small {display:block;color:var(--muted);font-size:15px;margin-top:7px;}
.passport-strip>span:last-child {font:14px var(--ledger);}
.archive-toolbar {display:flex;align-items:end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:22px;}
.kind-filters {display:flex;gap:8px;flex-wrap:wrap;}
.kind-filters button,.route-selector button,.gallery-controls button,.reader-companion-tools button {min-height:48px;min-width:48px;border:1px solid var(--edge);background:var(--plank);color:var(--paper);font:14px var(--ledger);padding:12px 17px;cursor:pointer;}
.kind-filters button[aria-pressed=true],.route-selector button[aria-pressed=true] {background:var(--signal-hi);color:var(--slough);border-color:var(--signal-hi);}
.record-search {font:13px var(--ledger);display:block;flex:1;min-width:230px;max-width:360px;}
.record-search input {display:block;margin-top:8px;padding:12px 14px;min-height:48px;background:var(--slough-deep);color:var(--paper);border:1px solid var(--edge);width:100%;font:16px var(--body);}
.record-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;}
.record-card {border:1px solid var(--edge);background:var(--plank);scroll-margin-top:20px;}
.record-image {height:230px;overflow:hidden;background:#ddd6c2;}
.record-image img {width:100%;height:100%;object-fit:cover;}
.record-image.cutout {background:radial-gradient(ellipse at 50% 70%,#e4ddc8,#beb9a4);}
.record-image.cutout img {object-fit:contain;padding:15px;}
.record-copy {padding:20px;}
.record-copy>.ledger {font-size:11px;color:var(--signal-hi);text-transform:uppercase;}
.record-copy :is(h2,h3) {font-size:28px;margin:9px 0 10px;}
.record-subtitle {font-size:15px;color:var(--muted);min-height:3em;}
.record-copy .text-link {font-size:13px;}
.record-copy details {font-size:16px;}
.record-collected {display:block;color:var(--signal-hi);font:12px var(--ledger);margin-top:10px;}
.record-dialog {width:min(920px,calc(100% - 32px));max-height:90dvh;background:var(--plank);border:1px solid var(--edge);padding:0;color:var(--paper);overflow:auto;}
.record-dialog::backdrop {background:#050b08dd;}
.record-dialog[open] {display:block;}
.record-dialog-layout {display:grid;grid-template-columns:.9fr 1.1fr;min-height:500px;}
.record-dialog-art {background:radial-gradient(ellipse,#e4ddc8,#b0ad97);display:flex;align-items:center;}
.record-dialog-art img {width:100%;max-height:570px;object-fit:contain;padding:20px;}
.record-dialog-copy {padding:65px 34px 35px;}
.record-dialog-copy h2 {font-size:44px;margin:13px 0 15px;}
.record-dialog-copy .btn {margin:15px 0;}
.dialog-close {position:absolute;right:12px;top:12px;min-height:48px;min-width:48px;border:1px solid var(--edge);background:var(--slough);color:var(--paper);font:30px var(--body);cursor:pointer;z-index:2;}
.passport-intro>p:not(.plate) {max-width:66ch;margin-top:25px;}
.passport-totals {display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:40px 0;}
.passport-totals>div {display:flex;gap:18px;align-items:center;padding:24px;border-top:2px solid var(--edge);background:var(--plank);}
.passport-totals b {font:52px var(--display);color:var(--signal-hi);}
.passport-totals span {font:14px/1.5 var(--ledger);}
.save-notice {font:14px/1.5 var(--ledger);color:var(--muted);}
.route-selector {display:flex;flex-wrap:wrap;gap:10px;margin:35px 0;}
.route-selector button {flex:1;max-width:100px;}
.book-expedition {padding:38px;border:1px solid var(--edge);margin-top:25px;background:var(--slough-deep);}
.route-heading {display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:30px;}
.route-heading p:not(.plate) {margin-top:15px;color:var(--muted);}
.passport-seal {display:block;flex-shrink:0;width:150px;min-height:150px;text-align:center;border:3px double var(--edge);padding:20px 10px;font:11px/1.5 var(--ledger);color:var(--muted);transform:rotate(4deg);}
.passport-seal b {display:block;font:42px var(--display);}
.passport-seal[data-earned=true] {color:var(--signal-hi);border-color:var(--signal-hi);}
.discovery-stops {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:30px 0;}
.discovery-stops>a {position:relative;display:block;background:var(--plank);border:1px solid var(--edge);padding:18px;text-decoration:none;color:var(--paper);}
.discovery-stops img {width:100%;height:200px;object-fit:contain;background:radial-gradient(ellipse,#e4ddc8,#b6b3a1);margin-bottom:20px;}
.discovery-stops .ledger {font-size:12px;color:var(--muted);}
.discovery-stops h3 {margin:8px 0;font-size:28px;}
.discovery-stops [data-discovery-status] {font:13px var(--ledger);color:var(--drift-hi);display:block;margin-top:14px;}
.trail-checklist {display:grid;grid-template-columns:repeat(3,1fr);gap:25px;}
.trail-checklist>div {border-top:1px solid var(--edge);padding-top:20px;}
.trail-checklist a,.trail-checklist span {font:15px/1.6 var(--ledger);color:var(--signal-hi);}
.trail-checklist p {font-size:15px;color:var(--muted);margin:12px 0;}
.reflection-note {padding:28px;border-left:3px solid var(--drift);background:var(--plank);margin:36px 0;}
.reflection-note h3 {font:600 24px/1.5 var(--body);margin:10px 0;}
.reflection-note p {font-size:16px;color:var(--muted);}
.collection-section {padding-top:0;}
.collection-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:30px 0;}
.collection-grid>a {display:flex;gap:12px;align-items:center;background:var(--plank);padding:12px;border:1px solid var(--edge);text-decoration:none;font:14px/1.4 var(--ledger);}
.collection-grid img {width:65px;height:80px;object-fit:contain;background:#c8c3af;}
.collection-grid>p {grid-column:1/-1;}
.guide-book-layout {display:grid;grid-template-columns:300px 1fr;gap:70px;align-items:center;margin-top:35px;}
.guide-book-cover>img {max-width:300px;width:100%;filter:drop-shadow(10px 15px 15px #0006);}
.guide-book-cover>.ledger {display:block;font-size:12px;text-align:center;color:var(--muted);margin-top:22px;}
.guide-book-layout h1 {font-size:clamp(42px,5vw,70px);}
.guide-spotlight {color:var(--signal-hi);font:15px var(--ledger);margin:20px 0;}
.guide-invitation {color:var(--muted);font-size:17px;margin-top:25px;max-width:60ch;}
.book-discoveries {padding-top:0;}
.book-resource-grid {grid-template-columns:1fr 1fr;}
.guide-neighbors {display:flex;justify-content:space-between;gap:25px;padding-top:35px;border-top:1px solid var(--edge);font:16px var(--ledger);}
.reader-companion-tools {position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 20px;background:var(--slough-deep);border-bottom:1px solid var(--edge);font:14px var(--ledger);flex-wrap:wrap;}
.reader-companion-tools~section :is(.prose,.reading,.read-text,.chapter,.paper-body) {font-size:var(--reader-size,20px);}
.reading-illustration {max-width:520px;margin:25px auto;}
.gallery {border:1px solid var(--edge);background:var(--plank);margin-top:35px;}
.gallery-picture {position:relative;aspect-ratio:3/2;overflow:hidden;}
.gallery-picture>img {width:100%;height:100%;object-fit:cover;}
.gallery-caption {padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:30px;}
.gallery-caption h3 {font-size:36px;margin-top:10px;}
.gallery-caption p {align-self:center;color:var(--paper);font-size:20px;line-height:1.6;}
.gallery-controls {display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:0 28px 28px;}
.gallery-controls [aria-pressed=true] {border-color:var(--drift);color:var(--drift-hi);}
.gallery-controls button {min-height:52px;}
.sound-notice {font:13px var(--ledger);color:var(--muted);}
.together-note {max-width:70ch;margin:25px 0;color:var(--muted);}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion:no-preference) and (min-width:761px) {
    [data-scroll-scene]>img {animation:scene-drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%;}
    @keyframes scene-drift {from{transform:scale(1.06) translateY(-1.5%)}to{transform:scale(1.06) translateY(1.5%)}}
  }
}
@media(max-width:1100px){
  .companion-header{align-items:flex-start;gap:15px;flex-direction:column;padding:20px var(--gut);}
  .companion-header nav{gap:6px 24px;width:100%;}
  .record-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .companion-shelf{grid-template-columns:repeat(5,minmax(0,1fr));gap:35px 18px;}
  .guide-cover :is(h2,h3){font-size:21px;}.guide-cover .ledger{font-size:10px;}
  .crew-lineup{grid-template-columns:repeat(4,1fr);gap:25px;}.crew-lineup img{height:240px;}
  .guide-book-layout{grid-template-columns:240px 1fr;gap:40px;}
  .collection-grid{grid-template-columns:repeat(3,1fr);}
  .entry-grid>a{padding:24px;}.section-intro{gap:30px;}
}
@media(max-width:760px){
  .companion-header nav{gap:4px 20px;}.companion-header nav a{font-size:13px;}
  .companion-hero{min-height:760px;align-items:end;padding:270px var(--gut) 90px;}
  .companion-hero>img{object-position:57% top;}
  .companion-hero::after{background:linear-gradient(0deg,#0c100efc,#0c100edf 42%,#0c100e00 92%);}
  .companion-hero-copy{padding-bottom:10px;}.companion-hero-copy h1{font-size:clamp(42px,8vw,64px);}
  .hero-fieldline{font-size:10px;gap:14px;flex-wrap:wrap;padding:18px var(--gut);}.hero-fieldline>span:last-child{display:none;}
  .companion-welcome{display:block;font-size:14px;line-height:1.6;}.companion-welcome span{display:block;margin-top:8px;}
  .section-intro,.entry-grid,.law-records,.reading-progress,.gallery-caption{grid-template-columns:1fr;gap:22px;}
  .companion-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 25px;}.guide-cover :is(h2,h3){font-size:25px;}.guide-cover .ledger{font-size:11px;}
  .story-scene{min-height:720px;align-items:end;padding:320px var(--gut) 80px;}.story-scene::after{background:linear-gradient(0deg,#0c100efc,#0c100ee0 35%,transparent 95%);}.story-scene>img{object-position:65% center;}.scene-caption{left:var(--gut);font-size:10px;}
  .crew-lineup{grid-template-columns:repeat(4,1fr);gap:10px;}.crew-lineup img{height:185px;}.crew-lineup>a{font-size:12px;}
  .law-records h3{max-width:none;}.companion-footer{grid-template-columns:1fr;}.companion-footer nav{gap:12px;}
  .archive-banner{min-height:500px;padding:180px var(--gut) 50px;}.archive-banner::after{background:linear-gradient(0deg,#0c100ef5,#0c100e99 55%,transparent);}
  .record-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}.record-image{height:200px;}.record-copy{padding:16px;}.record-copy :is(h2,h3){font-size:26px;}
  .passport-strip{align-items:flex-start;flex-direction:column;}.passport-totals{gap:10px;}.passport-totals>div{display:block;padding:18px 12px;}.passport-totals b{font-size:42px;}.passport-totals span{display:block;font-size:12px;}
  .book-expedition{padding:22px;}.route-heading{gap:16px;}.route-heading h2{font-size:36px;}.passport-seal{width:100px;min-height:120px;font-size:9px;padding:15px 5px;}.passport-seal b{font-size:34px;}
  .discovery-stops{gap:10px;}.discovery-stops>a{padding:12px;}.discovery-stops img{height:135px;}.discovery-stops h3{font-size:23px;}.discovery-stops [data-discovery-status]{font-size:11px;}
  .trail-checklist{grid-template-columns:1fr;gap:12px;}.collection-grid{grid-template-columns:repeat(2,1fr);}
  .guide-book-layout{grid-template-columns:1fr;gap:35px;}.guide-book-cover>img{max-width:220px;margin:auto;}.book-resource-grid{grid-template-columns:1fr;}
  .record-dialog-layout{grid-template-columns:1fr;}.record-dialog-art img{height:280px;padding:25px;}.record-dialog-copy{padding:28px;}.record-dialog-copy h2{font-size:38px;}
  .gallery-caption{padding:22px;gap:15px;}.gallery-controls{padding:0 22px 22px;gap:10px;}.gallery-caption p{font-size:19px;}
}
@media(max-width:430px){
  .record-grid{grid-template-columns:1fr 1fr;}.record-image{height:160px;}.record-copy{padding:12px;}.record-copy :is(h2,h3){font-size:23px;}.record-subtitle{font-size:13px;}
  .discovery-stops{grid-template-columns:1fr;}.discovery-stops img{height:160px;}.collection-grid{grid-template-columns:1fr;}
  .crew-lineup img{height:140px;}.route-heading{align-items:flex-start;}.route-heading h2{font-size:30px;}.guide-neighbors{flex-direction:column;}
}
@media(prefers-reduced-motion:reduce){[data-scroll-scene]>img{animation:none!important;transform:none!important;}.guide-cover img{transition:none;}.guide-cover:hover img{transform:none;}}
@media print{.companion-header,.companion-footer,.archive-toolbar,.gallery-controls,.reader-companion-tools{display:none!important;}.companion-site{background:#fff;color:#111;}.companion-section{padding:20px;}.book-expedition[hidden]{display:block!important;}}

.storytime-entry{display:flex;flex-wrap:wrap;align-items:center;gap:15px;margin-top:22px;padding-top:20px;border-top:1px solid var(--edge);}.storytime-entry p{margin:0;color:var(--muted);font-size:16px;}

/* Chapter drawings retain their white paper and full composition. */
.chapter-gallery{border:1px solid var(--edge);margin-top:28px;}
.chapter-gallery summary{padding:22px 26px;cursor:pointer;font:18px var(--ledger);color:var(--drift-hi);min-height:60px;}
.chapter-art-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding:0 26px 26px;}
.chapter-art-grid a{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--paper);padding-bottom:10px;}
.chapter-art-grid img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#fff;}
.chapter-art-grid a:hover span{text-decoration:underline;text-underline-offset:5px;}
.reading-illustration img{display:block;width:100%;height:auto;}
@media(max-width:650px){.chapter-art-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 16px 20px;}.chapter-gallery summary{padding:20px 16px;}}
