
:root{--paper:#fffaf0;--ink:#3e2346;--muted:#725f73;--yellow:#ffdc52;--cyan:#8ddbd8;--pink:#f1a7bd;--line:#ded3ce;--round:"Arial Rounded MT Bold","Trebuchet MS",sans-serif;--body:"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--body)}button,a,input{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:inherit}button{cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #a42e68;outline-offset:5px}::selection{background:#ffe169;color:var(--ink)}img{display:block;max-width:100%;height:auto}svg{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--round);font-weight:700;line-height:1.13;letter-spacing:-.045em}h1{font-size:clamp(48px,5.5vw,76px);margin-bottom:24px}h2{font-size:clamp(34px,3.3vw,46px);margin-bottom:20px}h3{font-size:23px;letter-spacing:-.025em}.wrap{width:min(1152px,calc(100% - 80px));margin:auto}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:800;text-transform:uppercase;line-height:1.4;margin-bottom:20px}.muted{color:var(--muted)}.skip{position:fixed;top:-100px;left:12px;z-index:100;background:var(--ink);color:white;padding:10px 20px}.skip:focus{top:8px}.site-header{border-bottom:1px solid var(--line);background:rgba(255,250,240,.96);position:sticky;top:0;z-index:20}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:88px}.brand{text-decoration:none;display:flex;gap:11px;align-items:center;font-family:var(--round);font-size:23px;font-weight:700;letter-spacing:-.05em;white-space:nowrap}.brand-icon{width:34px;height:38px;background:var(--yellow);border-radius:12px 12px 12px 4px;display:grid;place-items:center;transform:rotate(-8deg)}.brand-icon svg{width:23px;height:23px;transform:rotate(8deg)}.nav-links{display:flex;gap:30px;align-items:center;font-weight:650;font-size:14px}.nav-links a{text-decoration:none}.nav-links a:hover{text-decoration:underline;text-underline-offset:5px}.nav-links .nav-status{border:1px solid var(--ink);border-radius:40px;padding:9px 16px;display:flex;gap:8px;align-items:center}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--ink);display:inline-block}.hero{padding:68px 0 52px;display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}.hero-copy{padding-bottom:10px}.hero .eyebrow{display:flex;gap:12px;align-items:center}.little-line{width:30px;height:2px;background:var(--ink)}.highlight{position:relative;display:inline-block;z-index:0}.highlight:before{content:"";position:absolute;left:-.025em;right:-.06em;bottom:.06em;height:.27em;background:var(--yellow);z-index:-1;transform:rotate(-2deg);border-radius:3px}h1 .colourful{color:#a83b68}.hero-description{max-width:475px;font-size:18px;line-height:1.7;margin-bottom:30px}.actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.button{border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:50px;min-height:50px;padding:12px 23px;font-weight:700;font-size:15px;text-decoration:none;display:inline-flex;gap:22px;align-items:center;justify-content:center;line-height:1.5;transition:transform .18s,box-shadow .18s}.button:hover{transform:translateY(-2px);box-shadow:0 4px 0 #decbcf}.button.secondary{background:transparent;color:var(--ink)}.text-link{font-size:15px;font-weight:650;text-underline-offset:5px}.tiny-note{font-size:12px;margin:18px 0 0;color:var(--muted)}.hero-art{position:relative;padding:16px 32px 12px 24px}.book-stage{position:relative;background:#f9e79c;border-radius:48% 48% 16px 16px;padding:25px 48px 30px;isolation:isolate}.book-stage:before{content:"";position:absolute;inset:18px -10px -10px 12px;border:1px dashed #b39c65;border-radius:48% 48% 18px 18px;z-index:-1}.book-cover{width:302px;margin:auto;transform:rotate(4deg);box-shadow:9px 11px 0 #3e23461f,0 17px 30px #3e234623;border:5px solid #fffdf7;border-radius:3px}.book-tag{position:absolute;left:0;top:27px;background:var(--paper);border:1px solid var(--ink);border-radius:9px;transform:rotate(-9deg);padding:10px 13px;font:700 12px/1.3 var(--round);box-shadow:3px 3px 0 var(--pink);z-index:2}.book-tag span{display:block;color:#945074;font-size:11px;margin-top:4px}.art-star{position:absolute;font-size:45px;line-height:1;right:6px;top:6px;color:#ac416f;transform:rotate(12deg)}.art-star.two{font-size:26px;top:auto;bottom:45px;right:8px;color:var(--ink)}.art-caption{margin:24px 0 0;text-align:center;font-size:12px;letter-spacing:.04em}.art-caption strong{font-size:14px;display:block;letter-spacing:0;margin-bottom:2px}.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0;display:grid;grid-template-columns:1.15fr 1fr 1fr 1fr;align-items:center;gap:30px}.facts-label{font-size:13px;line-height:1.6}.facts-label strong{display:block;font-family:var(--round);font-size:19px;letter-spacing:-.04em}.fact{border-left:1px solid var(--line);padding-left:35px;display:flex;align-items:baseline;gap:10px}.fact strong{font:700 36px/1 var(--round);letter-spacing:-.06em}.fact span{font-size:13px}.how{padding:85px 0 78px}.section-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:36px}.section-intro p:last-child{color:var(--muted);font-size:16px;max-width:430px;margin-bottom:4px}.section-intro h2{margin-bottom:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin:42px 0 0;padding:0;list-style:none}.step-number{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:700 16px var(--round);margin-bottom:19px;background:var(--yellow)}.steps li:nth-child(2) .step-number{background:var(--pink)}.steps li:nth-child(3) .step-number{background:var(--cyan)}.steps li:nth-child(4) .step-number{background:#e4d9ec}.steps h3{font-size:20px;margin-bottom:12px}.steps p{font-size:14px;line-height:1.7;color:var(--muted);max-width:225px;margin-bottom:0}.try-section{background:#f0ebe3;border-top:1px solid #e9e0d5;border-bottom:1px solid #e9e0d5;padding:65px 0 68px}.try-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:66px;align-items:center}.try-intro h2{max-width:350px}.try-intro>p:not(.eyebrow){font-size:16px;max-width:350px;color:var(--muted)}.demo-label{display:inline-flex;align-items:center;gap:8px;border:1px solid #a08b9a;border-radius:6px;padding:5px 9px;font-size:11px;line-height:1.5;color:var(--muted);margin-top:9px}.quest-card{border:1px solid #c6b6bf;border-radius:18px;background:#fffdf8;padding:26px;box-shadow:0 7px 0 #e1d7d6}.quest-top{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;font-weight:700;line-height:1.4;margin-bottom:18px}.progress-dots{display:flex;gap:6px}.progress-dot{width:23px;height:5px;border-radius:3px;background:#e4dadd}.progress-dot.done{background:#964c79}.quest-body{display:grid;grid-template-columns:1fr 1.1fr;gap:20px;align-items:center}.clue-label{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:700;margin-bottom:8px}.equation{font:700 32px/1.1 var(--round);letter-spacing:-.04em;white-space:nowrap;margin:0 0 21px}.answers{display:flex;gap:8px}.answer{width:47px;height:47px;background:#fffdf8;border:1.5px solid #b9a6b5;border-radius:10px;font-weight:700;font-size:19px;transition:background .18s}.answer:hover:enabled{background:#ffedb1;border-color:var(--ink)}.answer.correct{background:var(--yellow);border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}.answer.wrong{border-color:#ac325e;background:#fbe0e5}.answer:disabled:not(.correct){opacity:.45}.mosaic-wrap{position:relative;min-width:0;text-align:center;background:#f7f2ed;border-radius:12px;padding:8px}.mosaic{display:block;width:100%;max-width:240px;margin:auto;shape-rendering:crispEdges}.mosaic rect{transition:fill .5s}.mosaic text{font-family:var(--body);font-size:7px;fill:#826b7d}.mosaic .ink-cell{fill:#e4dcd6}.mosaic.complete .ink-cell{fill:var(--ink)}.mosaic.complete{animation:reveal .55s ease-out}.demo-feedback{min-height:47px;font-size:13px;line-height:1.55;margin:22px 0 0;max-width:420px}.quest-bottom{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #e3d9d7;padding-top:17px;margin-top:13px;font-size:11px;color:var(--muted)}.mini-button{border:0;background:none;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:4px;padding:8px 0}.next-button{background:var(--ink);border:0;border-radius:25px;padding:9px 15px;color:white;font-size:12px;font-weight:650}.next-button[hidden]{display:none}.inside{padding:85px 0}.page-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.page-preview{margin:0}.page-frame{border:1px solid var(--line);background:#eee7dc;padding:27px 45px;border-radius:14px;position:relative;display:block;width:100%;text-align:left;overflow:hidden}.page-frame img{width:100%;max-width:330px;margin:auto;box-shadow:0 5px 14px #3e23461a;transition:transform .2s}.page-frame:hover img{transform:translateY(-3px)}.zoom-hint{position:absolute;right:15px;bottom:15px;border-radius:40px;background:var(--paper);box-shadow:0 2px 8px #3e234621;border:1px solid #c2b3ba;display:grid;place-items:center;width:38px;height:38px;font-size:24px;line-height:1}.page-preview figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:19px 1px 0}.page-preview h3{font-size:21px;margin:0 0 5px}.page-preview p{font-size:13px;color:var(--muted);margin:0}.page-number{font:700 12px var(--round);color:#947f90;white-space:nowrap}.sample-note{text-align:center;font-size:12px;color:var(--muted);margin:24px 0 0}.coming{background:var(--ink);border-radius:22px;display:grid;grid-template-columns:1fr auto;gap:55px;align-items:center;padding:45px 54px;color:var(--paper);position:relative;overflow:hidden;margin-bottom:58px}.coming .eyebrow{color:var(--yellow);margin-bottom:13px;display:flex;align-items:center;gap:9px}.coming .status-dot{background:var(--yellow)}.coming h2{font-size:36px;max-width:550px;margin-bottom:16px}.coming p:not(.eyebrow){font-size:15px;line-height:1.7;max-width:550px;color:#e5d9e4;margin:0}.coming .button{background:var(--yellow);color:var(--ink);border-color:var(--yellow);white-space:nowrap}.footer{border-top:1px solid var(--line);padding:24px 0 30px}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:12px;color:var(--muted)}.footer strong{font-family:var(--round);color:var(--ink);font-size:15px}.footer p{margin:0}.footer a{text-underline-offset:4px}dialog{padding:0;border:1px solid #b9a4b4;border-radius:15px;background:var(--paper);color:var(--ink);width:min(1100px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:hidden;box-shadow:0 30px 100px #24122d55}dialog::backdrop{background:#211127bd;backdrop-filter:blur(4px)}.modal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 20px;border-bottom:1px solid var(--line);background:var(--paper)}.modal-toolbar h2{font:700 18px var(--round);letter-spacing:-.03em;margin:0}.modal-toolbar p{font-size:11px;color:var(--muted);margin:2px 0 0}.zoom-controls{display:flex;gap:7px;align-items:center}.tool-button{border:1px solid #b9a4b4;background:transparent;min-height:40px;min-width:40px;border-radius:7px;padding:5px 10px;font-size:13px}.tool-button:hover{background:#ffe8a0}.tool-button:disabled{opacity:.4}.close-button{font-size:24px;line-height:1;min-width:40px;border:0;background:var(--ink);color:white;border-radius:8px;min-height:40px}.image-viewport{overflow:auto;max-height:calc(100dvh - 158px);padding:24px;background:#e9e0d8;overscroll-behavior:contain}.image-viewport img{max-width:none;height:auto;box-shadow:0 3px 15px #3e234626;margin:auto}.image-viewport.fit img{width:min(100%,966px)}.modal-instructions{font-size:11px;line-height:1.5;margin:0;padding:9px 20px;background:var(--paper);border-top:1px solid var(--line)}[hidden]{display:none!important}@keyframes reveal{0%{transform:scale(.97)}60%{transform:scale(1.04)}100%{transform:scale(1)}}@media(min-width:1500px){.hero{padding-top:80px;padding-bottom:68px}}@media(max-width:1050px){.wrap{width:calc(100% - 56px)}.hero{gap:25px}.hero-art{padding:20px 15px 10px}.book-stage{padding:22px 36px 28px}.hero-description{font-size:16px}.book-tag{left:-2px}.try-layout{gap:35px;grid-template-columns:.8fr 1.2fr}.quest-card{padding:22px}.equation{font-size:29px}.answer{width:42px;height:44px}.coming{padding:40px;gap:35px}.coming h2{font-size:31px}.steps{gap:18px}.fact{padding-left:23px}.fact strong{font-size:32px}}@media(max-width:760px){html{scroll-padding-top:100px}.wrap{width:calc(100% - 40px)}.nav{min-height:77px;gap:15px;flex-wrap:wrap;padding:15px 0 13px}.brand{font-size:21px}.brand-icon{width:29px;height:32px}.brand-icon svg{width:21px;height:21px}.nav-links{gap:18px;font-size:12px;justify-content:space-between;width:100%}.nav-links .nav-status{border:0;padding:0;gap:5px}.hero{grid-template-columns:1fr;gap:34px;padding:43px 0 38px}.hero-copy{padding:0}.hero .eyebrow{font-size:10px;margin-bottom:21px}.hero h1{font-size:clamp(43px,8.2vw,66px);line-height:1.05;margin-bottom:23px}.hero-description{font-size:16px;max-width:520px;margin-bottom:26px}.hero-art{width:100%;max-width:390px;justify-self:center;padding:10px 28px 10px}.book-stage{padding:20px 46px 27px;border-radius:46% 46% 13px 13px}.book-cover{width:228px}.book-tag{font-size:11px;left:9px;top:12px;padding:9px 10px}.art-star{font-size:34px;right:8px;top:0}.art-star.two{right:6px;bottom:66px}.art-caption{margin-top:23px;font-size:11px}.art-caption strong{font-size:13px}.tiny-note{margin-top:16px}.facts{grid-template-columns:repeat(3,1fr);gap:17px 10px;padding:23px 0}.facts-label{grid-column:1/-1;text-align:center;font-size:12px}.facts-label strong{display:inline;font-size:16px;margin-right:7px}.fact{border:0;padding:0;justify-content:center;gap:6px;align-items:center;flex-direction:column;font-size:12px}.fact strong{font-size:31px}.fact span{font-size:12px}.fact+.fact{border-left:1px solid var(--line)}.how{padding:54px 0}.section-intro{grid-template-columns:1fr;gap:18px;margin-bottom:27px}.eyebrow{font-size:11px;margin-bottom:14px}h2{font-size:35px}.section-intro p:last-child{max-width:550px;font-size:15px}.steps{grid-template-columns:1fr 1fr;gap:29px 25px;margin-top:30px}.steps h3{font-size:19px;margin-bottom:9px}.steps p{font-size:13px}.step-number{margin-bottom:14px;width:31px;height:31px;font-size:14px}.try-section{padding:48px 0}.try-layout{grid-template-columns:1fr;gap:27px}.try-intro h2{max-width:440px}.try-intro>p:not(.eyebrow){max-width:480px;font-size:15px}.demo-label{margin-top:0}.quest-card{padding:22px 18px;max-width:520px;width:100%;justify-self:center}.quest-body{gap:13px;grid-template-columns:1fr 1.05fr}.equation{font-size:30px}.answers{gap:6px}.answer{width:42px;height:45px;font-size:18px}.clue-label{font-size:10px}.demo-feedback{font-size:12px;min-height:39px;margin-top:18px}.quest-bottom{margin-top:14px}.inside{padding:54px 0}.page-grid{gap:25px;grid-template-columns:1fr}.page-frame{padding:25px 40px}.page-frame img{max-width:300px}.page-preview figcaption{padding-top:15px}.page-preview h3{font-size:21px}.page-preview p{font-size:13px}.sample-note{font-size:11px;max-width:300px;margin:25px auto 0}.coming{grid-template-columns:1fr;gap:26px;padding:30px 25px;margin-bottom:38px;border-radius:16px}.coming h2{font-size:31px}.coming p:not(.eyebrow){font-size:14px}.coming .button{justify-self:start;font-size:14px;padding:10px 19px;min-height:47px}.footer-inner{align-items:flex-start;flex-direction:column;gap:13px;font-size:11px}.footer-inner p{max-width:300px}.modal-toolbar{padding:12px;gap:10px;flex-wrap:wrap}.modal-toolbar h2{font-size:16px}.modal-toolbar>div:first-child{flex:1 1 200px}.zoom-controls{gap:6px}.tool-button{min-height:40px;min-width:40px;padding:5px 9px;font-size:12px}.image-viewport{max-height:calc(100dvh - 210px);padding:12px}.modal-instructions{padding:9px 12px;font-size:10px}}@media(max-width:370px){.wrap{width:calc(100% - 30px)}.nav-links{gap:12px;font-size:11px}.hero h1{font-size:43px}.button{font-size:13px;padding:11px 17px;gap:15px;min-height:46px}.actions{gap:11px}.text-link{font-size:13px}.quest-body{gap:8px}.equation{font-size:26px}.answer{width:37px;height:42px}.quest-card{padding:18px 14px}.mosaic-wrap{padding:5px}.quest-top{font-size:11px}.steps{gap:26px 16px}.steps h3{font-size:18px}.page-frame{padding:20px 30px}.coming h2{font-size:29px}.brand{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* catalogue.css */
/* Small works-in-progress on an explorer's drawing table. */
.quest-catalogue{max-width:950px;margin:34px auto 52px;position:relative;padding:4px 24px 8px;color:var(--ink);isolation:isolate}
.catalogue-intro{position:relative;padding:0 0 9px 5px;max-width:600px}
.catalogue-intro .eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:9px;color:#966124}
.catalogue-intro h2{font-size:30px;line-height:1.14;margin:0 0 12px;letter-spacing:-.045em;color:#4a255c}
.catalogue-intro>p:last-child{font-size:14px;line-height:1.65;color:#765d76;margin:0;max-width:530px}
.catalogue-intro #catalogue-note{font-size:14px;line-height:1.65;color:#765d76;margin:0;max-width:530px}
.catalogue-notes-links{display:flex;flex-wrap:wrap;align-items:center;gap:3px 18px;margin-top:11px;font-size:12px;line-height:1.5;color:#775381}
.catalogue-notes-links a{padding:4px 0;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#b18bbb;white-space:nowrap;font-weight:650}
.catalogue-notes-links a:hover{color:#a42c79;text-decoration-color:currentColor}
.catalogue-notes-links a:focus-visible{outline:3px solid #a42c79;outline-offset:4px;border-radius:2px}
.catalogue-shelf{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:46px;padding:17px 34px 0;margin-top:10px;isolation:isolate}
.catalogue-shelf:before{content:"";position:absolute;left:15px;right:15px;top:205px;height:13px;border:2px solid #5a305e;border-radius:5px 3px 6px 3px;background:repeating-linear-gradient(0deg,#dcad66 0 4px,#e9c384 4px 7px);box-shadow:0 5px 0 #52265e26;transform:rotate(-.6deg);pointer-events:none;z-index:-1}
.catalogue-shelf:after{content:"";position:absolute;left:45px;right:45px;top:216px;height:10px;background:#613f5430;filter:blur(8px);pointer-events:none;z-index:-2}
.catalogue-route{position:absolute;left:1%;top:6px;width:98%;height:245px;opacity:.26;z-index:-2;pointer-events:none;overflow:hidden}
.catalogue-book{min-width:0;margin:0;text-align:center;position:relative}
.catalogue-art{height:190px;display:flex;align-items:flex-end;justify-content:center;position:relative;padding-bottom:0}
.catalogue-art img{width:144px;max-width:100%;max-height:186px;height:auto;object-fit:contain;transform:rotate(var(--book-angle,-3deg));transform-origin:50% 100%;border:3px solid #fff7dc;border-radius:2px;box-shadow:4px 6px 0 #4b205c25,0 6px 12px #54325527;position:relative;z-index:1}
.catalogue-book figcaption{padding-top:25px;position:relative}
.catalogue-book h3{font-size:19px;line-height:1.18;letter-spacing:-.025em;color:#49245b;margin:0 0 8px;font-family:var(--round)}
.catalogue-book h3:before{content:"";display:inline-block;width:6px;height:6px;background:var(--trail-colour,#19b8d0);border:1px solid #512762;transform:rotate(45deg);margin:0 7px 3px 0}
.catalogue-status{font-size:11px;line-height:1.6;color:#7b637e;max-width:210px;margin:0 auto}
.catalogue-status strong{color:#684073;font-weight:700}
@media(max-width:900px){.quest-catalogue{padding-left:10px;padding-right:10px}.catalogue-shelf{gap:28px;padding-left:22px;padding-right:22px}.catalogue-intro h2{font-size:30px}}
@media(max-width:760px){.quest-catalogue{width:calc(100% - 40px);margin:29px auto 37px;padding:0;max-width:580px}.catalogue-intro{padding-left:2px;padding-bottom:3px}.catalogue-intro .eyebrow{font-size:9px;letter-spacing:.1em}.catalogue-intro h2{font-size:27px;margin-bottom:11px;max-width:330px}.catalogue-intro>p:last-child{font-size:12px;line-height:1.7;max-width:350px}.catalogue-shelf{gap:16px;padding:14px 9px 0;margin-top:12px}.catalogue-art{height:161px}.catalogue-art img{width:112px;max-height:148px;border-width:2px;box-shadow:3px 4px 0 #4b205c25,0 4px 9px #54325525}.catalogue-shelf:before{top:174px;left:0;right:0;height:10px;border-width:1.5px}.catalogue-shelf:after{top:185px;left:16px;right:16px}.catalogue-route{height:200px;top:0}.catalogue-book figcaption{padding-top:23px}.catalogue-book h3{font-size:15px;line-height:1.22;margin-bottom:7px}.catalogue-book h3:before{display:none}.catalogue-status{font-size:11px;line-height:1.5}.catalogue-status strong{display:block}.catalogue-status .catalogue-separator{display:none}}
@media(max-width:400px){.quest-catalogue{width:calc(100% - 34px)}.catalogue-shelf{gap:13px;padding-left:6px;padding-right:6px;margin-top:5px}.catalogue-art{height:138px}.catalogue-art img{width:93px;max-height:125px}.catalogue-shelf:before{top:151px}.catalogue-shelf:after{top:162px}.catalogue-book h3{font-size:14px;line-height:1.22}.catalogue-status{font-size:10.5px}.catalogue-intro h2{font-size:26px;max-width:300px}.catalogue-book figcaption{padding-top:23px}}
@media(max-width:760px){.catalogue-intro #catalogue-note{font-size:12px;line-height:1.7;max-width:350px}.catalogue-notes-links{font-size:11px;gap:3px 16px;margin-top:9px}}
@media(prefers-reduced-motion:reduce){.catalogue-art img{animation:none;transition:none}}

/* catalogue-browser.css */
/* Four-book field guide, preserving the illustrated clearing above. */
.quest-catalogue{max-width:1050px;margin:36px auto 64px;padding:0 14px}.catalogue-intro{max-width:720px;padding:0 3px 7px}.catalogue-intro h2{font:400 39px/1.12 "Quest Display",var(--round);letter-spacing:0;margin-bottom:14px}.catalogue-intro #catalogue-note{font-size:14px;line-height:1.75;max-width:650px}.catalogue-notes-links{font-size:13px;gap:5px 23px;margin-top:12px}
.catalogue-shelf{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;padding:24px 5px 25px;margin:12px 0 0}.catalogue-shelf:before{top:222px;left:0;right:0;height:15px}.catalogue-shelf:after{display:none}
.catalogue-book-tab{min-width:0;display:flex;flex-direction:column;align-items:center;border:2px solid transparent;border-radius:13px 10px 16px 7px;background:transparent;padding:8px 7px 11px;text-align:center;line-height:1.4;transition:background .15s,border-color .15s;position:relative}
.catalogue-art{height:182px;width:100%;margin-bottom:28px;pointer-events:none}.catalogue-art img{height:auto;max-height:180px;width:auto;max-width:100%;transform:rotate(var(--book-angle));transition:transform .17s}.catalogue-book-tab:hover{background:#fff2bf80}.catalogue-book-tab:hover img{transform:rotate(0) translateY(-3px)}.catalogue-book-tab[aria-selected="true"]{border-color:#785079;background:#fff9e7e6;box-shadow:0 4px 0 #d8bd90}
.catalogue-book-name{font:400 22px/1.13 "Quest Display",var(--round);color:#49245b;display:block;margin-bottom:9px}.catalogue-status{font-size:11px;display:block;line-height:1.5}.catalogue-status strong{display:block;color:#5f3b6b}
.catalogue-dossier{position:relative;background:#fff9e9;border:2px solid #77507c;border-radius:12px 25px 16px 8px;box-shadow:0 6px 0 #ddbf8c;min-height:330px;padding:32px 34px;display:grid;grid-template-columns:1.2fr 1fr;gap:34px}.catalogue-dossier:before{content:"FIELD GUIDE";position:absolute;top:-12px;right:25px;background:#f5cc64;border:1.5px solid #77507c;border-radius:4px;padding:2px 12px;font:700 10px/1.6 var(--body);letter-spacing:.12em;transform:rotate(2deg)}
.book-detail-copy,.book-detail-samples{min-width:0}.book-detail-range{color:#89502e;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;margin:0 0 7px}.book-detail-copy h3{font:400 34px/1.14 "Quest Display",var(--round);letter-spacing:0;margin:0 0 16px}.book-detail-description{font-size:14px;line-height:1.8;margin:0 0 18px;color:#6a5270;max-width:475px}
.book-detail-facts{display:flex;flex-wrap:wrap;gap:9px 18px;margin:0 0 17px;padding:13px 0;border-top:1px dashed #ccac8b;border-bottom:1px dashed #ccac8b}.book-detail-facts div{display:flex;align-items:baseline;gap:5px}.book-detail-facts dt{font:400 23px/1.2 "Quest Display",var(--round);color:#583368}.book-detail-facts dd{margin:0;font-size:11px;color:#765e79;white-space:nowrap}.book-detail-status{font-size:12px;line-height:1.7;color:#765e79;margin:0}.book-detail-status strong{color:#663d73}
.book-detail-samples>p{font-size:12px;font-weight:700;margin:0 0 14px;color:#725274}.book-sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.book-sample{min-width:0;width:100%;text-align:left;background:#f7eed9;border:1px solid #b59aaa;border-radius:6px 9px 7px 11px;padding:9px 9px 11px;line-height:1.4;box-shadow:0 3px 0 #e0caad}.book-sample:hover{background:#fff0b7;border-color:#785079}.book-sample img{width:100%;max-width:126px;margin:0 auto 9px;box-shadow:0 2px 5px #49344a25}.book-sample span{display:block;font-size:11px;font-weight:700;color:#583366}.book-sample small{font-size:10px;color:#7b647c;display:block;margin-top:5px}.book-sample-caption{font-size:11px;line-height:1.6;color:#7a607d;margin:12px 0 0}
@media(max-width:900px){.quest-catalogue{padding:0 8px}.catalogue-shelf{gap:11px}.catalogue-book-name{font-size:20px}.catalogue-art{height:156px}.catalogue-art img{max-height:154px}.catalogue-shelf:before{top:196px}.catalogue-dossier{padding:28px;gap:25px}.book-detail-copy h3{font-size:31px}}
@media(max-width:760px){.quest-catalogue{width:calc(100% - 40px);max-width:580px;margin:33px auto 45px;padding:0}.catalogue-intro h2{font-size:32px;max-width:none}.catalogue-intro #catalogue-note{font-size:13px;max-width:none}.catalogue-notes-links{font-size:12px;gap:5px 18px}.catalogue-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 15px;padding:18px 0 25px}.catalogue-shelf:before{display:none}.catalogue-art{height:178px;margin-bottom:18px}.catalogue-art img{max-height:174px}.catalogue-book-tab{padding:13px 10px 15px;background:#fff6dc77;border:1px solid #b5a178}.catalogue-book-tab[aria-selected="true"]{border:2px solid #785079;padding:12px 9px 14px}.catalogue-book-name{font-size:22px}.catalogue-dossier{grid-template-columns:1fr;gap:25px;padding:28px 25px;min-height:0}.book-detail-copy h3{font-size:31px}.book-detail-description{font-size:13px}.book-detail-range{font-size:10px}.book-detail-facts{gap:8px 16px}.book-detail-status{font-size:11px}.book-sample-grid{gap:16px}.book-sample{padding:10px}.book-sample img{max-width:150px}.book-sample span{font-size:12px}.catalogue-dossier:before{right:19px}}
@media(max-width:400px){.quest-catalogue{width:calc(100% - 34px)}.catalogue-art{height:144px}.catalogue-art img{max-height:140px}.catalogue-book-name{font-size:19px}.catalogue-status{font-size:10px}.catalogue-shelf{gap:13px 11px}.catalogue-intro h2{font-size:30px}.catalogue-dossier{padding:26px 19px;gap:21px}.book-detail-copy h3{font-size:29px}.book-detail-facts{gap:8px 13px}.book-detail-facts dt{font-size:22px}.book-detail-facts dd{font-size:10px}.book-sample-grid{gap:11px}.book-sample{padding:8px}.book-sample span{font-size:11px}}
.book-detail-samples>.book-sample-caption{font-weight:400;margin:12px 0 0;font-size:11px}
@media(prefers-reduced-motion:reduce){.catalogue-art img,.catalogue-book-tab{transition:none}.catalogue-book-tab:hover img{transform:rotate(var(--book-angle))}}

/* catalogue-filters-v8.css */
/* Native, keyboard-friendly finders in the village field notebook. */
.catalogue-finder [hidden]{display:none!important}.catalogue-facet-navigation{display:grid;gap:24px;margin:22px 0}.catalogue-facet-menu h3{font:400 24px/1.2 "Quest Display",var(--round);margin:0 0 12px;letter-spacing:0}.facet-menu-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.facet-menu-choices button{min-width:0;min-height:46px;border:1.5px solid #987394;border-radius:9px 14px 8px 12px;padding:10px 11px;background:#fffdf2;color:#573364;font:700 13px/1.4 var(--body)}.facet-menu-choices button:hover{background:#d8f1e6}.facet-menu-choices button[aria-pressed="true"]{background:#ffe07b;box-shadow:0 3px 0 #a9754f;border-color:#68446d}.level-menu button[aria-pressed="true"]{background:#f7c7dc;box-shadow:0 3px 0 #ac6485}.catalogue-filter-fields.catalogue-range-menu{grid-template-columns:minmax(180px,300px);margin-top:20px}
@media(max-width:760px){.facet-menu-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-facet-menu h3{font-size:23px}.facet-menu-choices button{font-size:12px}.catalogue-filter-fields.catalogue-range-menu{grid-template-columns:1fr}.catalogue-facet-navigation{gap:24px}}
.catalogue-finder{position:relative;margin:24px 0 5px;padding:23px 25px 16px;border:2px solid #81567b;border-radius:19px 10px 22px 10px;background:#fff9e9;box-shadow:0 5px 0 #ddbf8c;max-width:100%}
.finder-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.finder-heading>p{font:400 23px/1.2 "Quest Display",var(--round);margin:0}.finder-heading>button,#empty-clear-filters{background:none;border:0;border-bottom:1px solid currentColor;padding:4px 0;font-size:12px;min-height:32px;color:#663d73;font-weight:700;white-space:nowrap}
.catalogue-collections{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:19px}.catalogue-collections button{border:1.5px solid #8b6788;border-radius:30px;background:#fffdf4;font:700 12px/1.4 var(--body);min-height:44px;padding:9px 18px}.catalogue-collections button[aria-pressed="true"]{background:#ffe27a;color:#49245b;box-shadow:0 3px 0 #a9754f;border-color:#68446d}
.catalogue-filter-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.catalogue-filter-fields label{display:block;font-size:12px;font-weight:750;line-height:1.4;min-width:0}.catalogue-filter-fields select{display:block;width:100%;min-height:46px;border:1.5px solid #ad8a9c;border-radius:8px 12px 7px 12px;background:#fffef8;color:#49245b;font:600 14px/1.4 var(--body);margin-top:7px;padding:9px 28px 9px 10px;cursor:pointer}.catalogue-filter-fields select:disabled{background:#eee7db;color:#7b7279;cursor:default}.catalogue-filter-fields select:focus-visible{outline:3px solid #a42e68;outline-offset:3px}.catalogue-finder #range-filter-note{font-size:11px;line-height:1.6;margin:13px 0 0;color:#765e79}.catalogue-result-count{font-size:12px;font-weight:700;margin:13px 0 0;padding-top:12px;border-top:1px dashed #d6bda4;color:#663d73}
[data-book-tab][hidden],[data-book-panel][hidden],.catalogue-shelf[hidden],.catalogue-empty[hidden]{display:none!important}.catalogue-empty{border:2px dashed #b99582;border-radius:13px 24px 13px 8px;text-align:center;margin:30px 0 20px;padding:36px 24px;background:#fff9e2}.catalogue-empty h3{font:400 30px/1.15 "Quest Display",var(--round);margin:15px 0}.catalogue-empty>p:not(.planned-stamp){font-size:14px;max-width:530px;margin:0 auto 15px;color:#765e79}.planned-stamp{display:inline-block;background:#fff0a8;border:1px solid #bb855a;border-radius:5px;padding:3px 10px;font:700 10px/1.5 var(--body);letter-spacing:.025em;color:#744f48;white-space:nowrap}
.planned-series{margin:38px 0 0;border-top:1px dashed #bea78b;padding-top:31px}.planned-series>header{max-width:700px}.planned-series>header .eyebrow{font-size:10px;margin-bottom:8px}.planned-series h3{font:400 30px/1.15 "Quest Display",var(--round);margin-bottom:12px}.planned-series>header>p:last-child{font-size:13px;line-height:1.7;color:#765e79}.planned-series-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:23px}.planned-series-note{background:#fbf1d5;border:1px solid #cbb190;border-radius:8px 18px 11px 6px;padding:19px 17px 17px;min-width:0}.planned-series-note:nth-child(even){background:#f2eddc}.planned-series-note h4{font:400 24px/1.12 "Quest Display",var(--round);margin:17px 0 12px}.planned-series-note>p{font-size:12px;line-height:1.75;color:#765e79;margin-bottom:16px}.planned-series-note>button{border:1px dashed #bd9b93;border-radius:6px;padding:7px 9px;background:#f9f2df;color:#806879;font:600 10px/1.4 var(--body);max-width:100%;white-space:normal}
.village-neighbours{position:relative;display:flex;align-items:center;gap:18px;margin-top:23px;padding:22px 25px;background:#fff8e6;border:1.5px solid #c4ad83;border-radius:16px 9px 22px 9px;overflow:hidden}.village-neighbours>div{min-width:0;flex:1}.village-neighbours .eyebrow{font-size:10px;margin-bottom:7px}.village-neighbours h4{font:400 25px/1.1 "Quest Display",var(--round);margin:0 0 10px}.village-neighbours p:last-child{font-size:12px;line-height:1.7;margin-bottom:0;color:#765e79}.neighbour-flower{flex:none;width:110px;height:90px;background:var(--branch-a) center/contain no-repeat;transform:rotate(-15deg);pointer-events:none}
.village-neighbours{flex-wrap:wrap}.neighbour-progression{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;flex-basis:100%;list-style:none;padding:20px 0 0;margin:0;border-top:1px dashed #d0b798}.neighbour-progression li{min-width:0}.neighbour-progression span{display:block;font-size:10px;font-weight:800;color:#a14c77;margin-bottom:6px}.neighbour-progression strong{display:block;font:400 19px/1.15 "Quest Display",var(--round);margin-bottom:9px}.neighbour-progression p{font-size:11px!important;line-height:1.7}
@media(max-width:760px){.catalogue-finder{padding:21px 18px 16px}.catalogue-filter-fields{grid-template-columns:1fr 1fr;gap:14px}.catalogue-filter-fields>label:last-child{grid-column:1/-1}.planned-series-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.village-neighbours{flex-wrap:wrap;padding:21px}.neighbour-flower{width:70px;height:80px}.village-neighbours>.planned-stamp{margin-left:88px}.planned-series h3{font-size:28px}}
.neighbour-progression{counter-reset:none}@media(max-width:760px){.neighbour-progression{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}}
.village-neighbours-gallery{display:block;padding:25px}.neighbours-heading{display:flex;gap:18px;align-items:center}.neighbours-heading>div{flex:1;min-width:0}.neighbours-heading>div>p:last-child{font-size:12px;line-height:1.7;color:#765e79;margin:0}.first-neighbours{font-size:12px;line-height:1.7;margin:19px 0 22px;padding:13px 0;border-top:1px dashed #d0b798;border-bottom:1px dashed #d0b798;color:#765e79}.first-neighbours strong{color:#653e6a}.neighbour-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.neighbour-level{min-width:0;text-align:center}.neighbour-level h5{font:400 18px/1.2 "Quest Display",var(--round);margin:0 0 15px;min-height:48px}.neighbour-level h5>span{display:block;font:800 10px/1.4 var(--body);color:#a14c77;margin-bottom:7px}.neighbour-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.neighbour-pair figure{margin:0;min-width:0}.neighbour-pair img{height:203px;width:100%;object-fit:contain;filter:drop-shadow(0 7px 4px #6b453d26)}.neighbour-pair figcaption{font:400 18px/1.1 "Quest Display",var(--round);margin-top:12px;color:#653e6a}.neighbour-draft-note{border-top:1px dashed #d0b798;padding-top:17px;margin:25px 0 0!important;font-size:11px!important;text-align:center}
.neighbour-pair img{object-position:center bottom}.neighbour-level:nth-child(2) .neighbour-pair{grid-template-columns:.85fr 1.15fr}.neighbour-levels{grid-template-columns:repeat(4,minmax(0,1fr))}
.neighbour-level[data-art-pending] .neighbour-pair{min-height:203px;grid-template-columns:1fr;align-content:center;gap:17px;border-top:1px dashed #d4bca0;border-bottom:1px dashed #d4bca0}.character-awaiting-art figcaption{margin:0;font-size:21px}.neighbour-level[data-art-pending] .neighbour-pair:after{content:"Artwork being refined";font-size:10px;color:#8e5a77;line-height:1.5}
.neighbour-pair>.character-awaiting-art{height:203px;display:grid;place-items:center;align-content:center;gap:12px;border-top:1px dashed #d4bca0;border-bottom:1px dashed #d4bca0}.character-awaiting-art:after{content:"Artwork being refined";font-size:10px;line-height:1.5;color:#8e5a77}
@media(min-width:761px) and (max-width:1050px){.neighbour-levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}.neighbour-pair img{height:230px}.neighbour-level h5{min-height:0}}
@media(max-width:760px){.village-neighbours-gallery{padding:23px 18px}.neighbours-heading{gap:12px;flex-wrap:wrap}.neighbours-heading>.planned-stamp{margin-left:82px}.neighbour-levels{grid-template-columns:1fr;gap:29px}.neighbour-level{max-width:350px;width:100%;margin:auto}.neighbour-level h5{min-height:0;margin-bottom:18px}.neighbour-pair{gap:17px}.neighbour-pair img{height:230px}.neighbour-pair figcaption{font-size:20px}}
@media(max-width:400px){.neighbours-heading>.planned-stamp{margin-left:60px}.neighbour-pair img{height:205px}.neighbour-pair{gap:12px}}
@media(max-width:400px){.finder-heading{align-items:flex-start;gap:10px}.finder-heading>p{font-size:21px;max-width:150px}.finder-heading>button{font-size:10px;white-space:normal;max-width:74px;text-align:right}.catalogue-collections{gap:8px}.catalogue-collections button{font-size:11px;padding:9px 12px}.catalogue-filter-fields{grid-template-columns:1fr}.catalogue-filter-fields>label:last-child{grid-column:auto}.planned-series-grid{grid-template-columns:1fr 1fr;gap:10px}.planned-series-note{padding:16px 12px}.planned-series-note h4{font-size:21px}.planned-series-note>p{font-size:11px}.planned-stamp{padding:3px 7px;font-size:9px}.village-neighbours{gap:10px;padding:19px 16px}.neighbour-flower{width:48px;height:76px}.village-neighbours>.planned-stamp{margin-left:58px}}
@media(prefers-reduced-motion:reduce){.catalogue-finder *{scroll-behavior:auto}}

/* community.css */
/* Static community and shop areas. No collection, submission or fake links. */
.cq-community{max-width:1020px;margin:0 auto 64px;padding:7px 0 0;color:var(--ink,#3b1d50)}
.cq-community-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:stretch}
.cq-community-card{position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:30px 30px 25px;background:#fff8e5;border:2px solid #613271;border-radius:13px 25px 11px 23px;box-shadow:0 6px 0 #d6bb8e,0 12px 20px #5032500d;isolation:isolate}
.cq-community-card:after{content:"";position:absolute;inset:9px;border:1px dashed #d7bd91;border-radius:7px 17px 5px 15px;z-index:-1;pointer-events:none}
.cq-community-tab{display:inline-block;margin:0 0 20px;padding:6px 12px;border:1.5px solid #613271;border-radius:6px 8px 5px 8px;background:#ffe16d;color:#48215c;font:700 11px/1.4 var(--body,"Segoe UI",sans-serif);letter-spacing:.025em;box-shadow:0 3px 0 #613271;transform:rotate(-2deg)}
.cq-contact .cq-community-tab{background:#a4efe4;transform:rotate(1.5deg)}
.cq-community-card h2{font-family:var(--round,"Trebuchet MS",sans-serif);font-size:31px;line-height:1.14;letter-spacing:-.04em;color:#49245b;margin:0 0 17px;max-width:360px}
.cq-community-card>p:not(.cq-community-tab):not(.cq-community-pending){font-size:14px;line-height:1.75;color:#6a5371;margin:0 0 23px;max-width:390px}
.cq-community-card .cq-community-pending{font-size:12px;line-height:1.6;color:#745f78;margin:auto 0 0;padding-top:13px;border-top:1px solid #d8c4b1;width:100%}
.cq-community-shops{position:relative;margin:50px 0 0;padding:33px 0 0;border-top:2px dashed #c4a67a}
.cq-community-shop-intro{max-width:620px;margin-bottom:27px}
.cq-community-shop-intro .eyebrow{font-size:10px;letter-spacing:.12em;color:#a12c75;margin-bottom:10px}
.cq-community-shop-intro h2{font-family:var(--round,"Trebuchet MS",sans-serif);font-size:30px;line-height:1.15;letter-spacing:-.04em;color:#49245b;margin:0 0 12px}
.cq-community-shop-intro>p:last-child{font-size:14px;line-height:1.7;color:#6a5371;margin:0}
.cq-community-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.cq-community-shop{position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:24px 23px 20px;background:#fff7df;border:2px solid #643572;border-radius:10px 16px 8px 14px;box-shadow:0 5px 0 #cbb089;isolation:isolate}
.cq-community-shop:before{content:"";position:absolute;left:17px;right:17px;top:0;height:5px;background:var(--cq-shop-accent,#f6c641);border-radius:0 0 4px 4px;pointer-events:none}
.cq-shop-etsy{--cq-shop-accent:#f2984e}.cq-shop-amazon{--cq-shop-accent:#ffe040}.cq-shop-tpt{--cq-shop-accent:#46d0c6}
.cq-community-shop-kind{margin:0 0 9px;font-size:10px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#82607e}
.cq-community-shop h3{font-family:var(--round,"Trebuchet MS",sans-serif);font-size:23px;line-height:1.19;letter-spacing:-.025em;color:#49245b;margin:0 0 23px;max-width:100%}
.cq-community-link-pending{margin:auto 0 0;font-size:11px;line-height:1.65;color:#746078;border-top:1px solid #d8c4b1;padding-top:12px;width:100%}
.cq-community section,.cq-community article{scroll-margin-top:25px}
@media(max-width:1050px){.cq-community{max-width:900px}.cq-community-card{padding:27px 25px 23px}.cq-community-card h2{font-size:29px}.cq-community-shop-grid{gap:18px}.cq-community-shop{padding:23px 20px 19px}.cq-community-shop h3{font-size:21px}}
@media(max-width:760px){.cq-community{width:calc(100% - 40px);margin-bottom:43px;padding-top:3px;max-width:580px}.cq-community-notes{grid-template-columns:minmax(0,1fr);gap:26px}.cq-community-card{padding:25px 24px 23px;border-radius:11px 22px 9px 19px}.cq-community-tab{margin-bottom:18px;font-size:10px;padding:6px 11px}.cq-community-card h2{font-size:28px;max-width:370px;margin-bottom:15px}.cq-community-card>p:not(.cq-community-tab):not(.cq-community-pending){font-size:13px;line-height:1.75;margin-bottom:20px;max-width:440px}.cq-community-card .cq-community-pending{font-size:11px}.cq-community-shops{margin-top:36px;padding-top:28px}.cq-community-shop-intro{margin-bottom:23px}.cq-community-shop-intro .eyebrow{font-size:9px}.cq-community-shop-intro h2{font-size:27px;max-width:390px}.cq-community-shop-intro>p:last-child{font-size:12px}.cq-community-shop-grid{grid-template-columns:minmax(0,1fr);gap:20px}.cq-community-shop{padding:22px 23px 19px;display:grid;grid-template-columns:minmax(0,1fr);border-radius:9px 15px 7px 13px}.cq-community-shop-kind{font-size:9px;margin-bottom:7px}.cq-community-shop h3{font-size:23px;margin-bottom:16px}.cq-community-link-pending{font-size:11px;padding-top:11px}.cq-community section,.cq-community article{scroll-margin-top:20px}}
@media(max-width:370px){.cq-community{width:calc(100% - 34px)}.cq-community-card{padding:24px 21px 21px}.cq-community-card h2{font-size:26px}.cq-community-card>p:not(.cq-community-tab):not(.cq-community-pending){font-size:12px}.cq-community-shop-intro h2{font-size:25px}.cq-community-shop{padding:21px 21px 18px}.cq-community-shop h3{font-size:22px}}

/* field-guide-notes.css */
/* Compact native disclosure notes; no script, assets, or external dependencies. */
.helper-field-notes{max-width:950px;margin:0 auto 55px;padding:0 10px;color:var(--ink,#3b1d50)}
.helper-field-notes-heading{margin-bottom:21px;padding-left:3px}
.helper-field-notes-heading .eyebrow{font-size:10px;line-height:1.5;letter-spacing:.11em;color:#99537d;margin:0 0 8px}
.helper-field-notes-heading h2{font-family:"Quest Display",var(--round,"Trebuchet MS",sans-serif);font-size:30px;line-height:1.17;font-weight:400;letter-spacing:0;color:#49245b;margin:0}
.helper-field-notes-list{display:grid;gap:13px}
.helper-field-note{min-width:0;border:1.5px solid #805189;border-radius:9px 14px 7px 13px;background:#fff8e5;box-shadow:0 3px 0 #dbc29d;color:#4b285c}
.helper-field-note summary{padding:16px 21px 16px 22px;min-height:56px;cursor:pointer;font-family:var(--round,"Trebuchet MS",sans-serif);font-size:17px;font-weight:700;line-height:1.4;letter-spacing:-.015em;color:#4d2b60;border-radius:8px 13px 6px 12px}
.helper-field-note summary::marker{color:#a55185;font-size:.9em}
.helper-field-note summary:hover{background:#fff0c1}
.helper-field-note summary:focus-visible{outline:3px solid #b13c85;outline-offset:5px}
.helper-field-note[open] summary{padding-bottom:12px;background:#fff3d2;border-radius:8px 13px 0 0}
.helper-field-note-body{padding:3px 25px 20px 43px;max-width:820px}
.helper-field-note-body p{font-size:13px;line-height:1.8;color:#6a5371;margin:0 0 10px}
.helper-field-note-body p:last-child{margin-bottom:0}
.helper-field-note-body strong{font-weight:700;color:#543663}
.helper-field-note-body q{color:#543663}
@media(max-width:760px){.helper-field-notes{width:calc(100% - 40px);padding:0;margin-bottom:40px;max-width:580px}.helper-field-notes-heading{margin-bottom:19px;padding-left:2px}.helper-field-notes-heading .eyebrow{font-size:9px}.helper-field-notes-heading h2{font-size:27px}.helper-field-notes-list{gap:12px}.helper-field-note summary{font-size:15px;line-height:1.45;min-height:55px;padding:16px 18px}.helper-field-note-body{padding:2px 20px 19px 34px}.helper-field-note-body p{font-size:12px;line-height:1.8;margin-bottom:9px}}
@media(max-width:370px){.helper-field-notes{width:calc(100% - 34px)}.helper-field-notes-heading h2{font-size:25px}.helper-field-note summary{font-size:14px;padding-left:16px;padding-right:16px}.helper-field-note-body{padding-left:29px;padding-right:17px}}

/* suggestion-contact-v8.css */
/* Local Garden & Village form preview. No scripts, endpoints or global overrides. */
.cq-v8-postbox{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px;align-items:stretch;color:var(--ink,#3b1d50)}
.cq-v8-postbox .cq-community-card{position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:30px;background:#fff8e5;border:2px solid #613271;border-radius:13px 25px 11px 23px;box-shadow:0 6px 0 #d6bb8e;isolation:isolate}
.cq-v8-postbox .cq-community-card:after{content:"";position:absolute;inset:9px;border:1px dashed #d7bd91;border-radius:7px 17px 5px 15px;z-index:-1;pointer-events:none}
.cq-v8-postbox .cq-community-tab{display:inline-block;margin:0 0 18px;padding:6px 12px;border:1.5px solid #613271;border-radius:6px 8px 5px 8px;background:#ffe18d;color:#48215c;font:700 11px/1.4 var(--body,"Segoe UI",sans-serif);box-shadow:0 3px 0 #613271;transform:rotate(-2deg)}
.cq-v8-postbox .cq-contact .cq-community-tab{background:#b5e9df;transform:rotate(1.5deg)}
.cq-v8-postbox .cq-community-card h2{font:700 31px/1.14 var(--round,"Trebuchet MS",sans-serif);letter-spacing:-.035em;color:#49245b;margin:0 0 17px;max-width:370px}
.cq-v8-postbox .cq-community-card>p:not(.cq-community-tab):not(.cq-community-pending){font:400 14px/1.75 var(--body,"Segoe UI",sans-serif);color:#6a5371;margin:0 0 20px;max-width:420px}
.cq-v8-postbox .cq-community-card .cq-community-pending{width:100%;margin:0;padding:11px 0 0;border-top:1px solid #d8c4b1;color:#634c6b;font:400 12px/1.6 var(--body,"Segoe UI",sans-serif)}
.cq-v8-postbox .cq-community-pending strong{font-weight:700;color:#59315f}
.cq-v8-postbox .cq-contact .cq-community-pending{margin-top:auto}
.cq-v8-postbox .cq-idea-form{width:100%;min-width:0;margin-top:23px;font-family:var(--body,"Segoe UI",sans-serif)}
.cq-v8-postbox .cq-idea-categories{min-width:0;margin:0 0 19px;padding:0;border:0}
.cq-v8-postbox .cq-idea-categories legend,.cq-v8-postbox .cq-idea-message>label{display:block;margin-bottom:9px;padding:0;color:#49245b;font-size:13px;line-height:1.5;font-weight:700}
.cq-v8-postbox .cq-idea-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.cq-v8-postbox .cq-idea-category{min-width:0;display:flex;align-items:center;gap:8px;padding:10px 11px;background:#f3eddf;border:1px dashed #b4a39f;border-radius:8px 11px 7px 9px;color:#716277;font-size:12px;line-height:1.5;cursor:not-allowed}
.cq-v8-postbox .cq-idea-category input{width:16px;height:16px;flex:none;margin:0;accent-color:#7dbcb7;cursor:not-allowed;opacity:1}
.cq-v8-postbox .cq-idea-message{width:100%;min-width:0}
.cq-v8-postbox .cq-idea-message textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:112px;padding:11px 12px;border:1px dashed #b4a39f;border-radius:9px 12px 8px 10px;background:#f3eddf;color:#716277;-webkit-text-fill-color:#716277;font:400 13px/1.65 var(--body,"Segoe UI",sans-serif);resize:none;opacity:1;cursor:not-allowed}
.cq-v8-postbox .cq-idea-message textarea::placeholder{color:#807386;-webkit-text-fill-color:#807386;opacity:1}
.cq-v8-postbox .cq-idea-form-note{margin:11px 0 15px;color:#6a5371;font-size:11px;line-height:1.6}
.cq-v8-postbox .cq-idea-send{box-sizing:border-box;width:100%;min-height:48px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 15px;border:1.5px solid #aa9aaf;border-radius:10px 13px 8px 11px;background:#e7dce5;color:#76617e;font:700 13px/1.5 var(--body,"Segoe UI",sans-serif);box-shadow:0 3px 0 #c9bac9;cursor:not-allowed;opacity:1}
.cq-v8-postbox .cq-idea-send span{font-size:10px;line-height:1.4;font-weight:400}
.cq-v8-postbox .cq-village-postbox{display:block;width:230px;max-width:100%;height:auto;margin:5px auto 28px;overflow:visible;pointer-events:none}
@media(max-width:760px){.cq-v8-postbox{grid-template-columns:minmax(0,1fr);gap:26px}.cq-v8-postbox .cq-community-card{padding:25px 24px 23px}.cq-v8-postbox .cq-community-card h2{font-size:28px}.cq-v8-postbox .cq-community-card>p:not(.cq-community-tab):not(.cq-community-pending){font-size:13px}.cq-v8-postbox .cq-village-postbox{width:205px;margin-top:0;margin-bottom:18px}}
@media(max-width:370px){.cq-v8-postbox .cq-community-card{padding:24px 21px 21px}.cq-v8-postbox .cq-community-card h2{font-size:26px}.cq-v8-postbox .cq-idea-category{gap:6px;padding:9px 8px;font-size:11px}.cq-v8-postbox .cq-idea-send{padding:11px 12px}}

/* journey-core-v9.css */
html{scroll-behavior:auto}body{margin:0;background:#152f2a;color:var(--quest-plum);font-family:"Segoe UI",Arial,sans-serif}button{font:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ffe56b;outline-offset:5px}[hidden]{display:none!important}#journey-app{min-height:100svh}#journey-app[data-view=intro],#journey-app[data-view=scene]{height:100svh;overflow:clip}
.discovery-intro{position:fixed;inset:0;isolation:isolate;display:grid;place-items:center;background:#080d18;z-index:100;overflow:clip;color:#fff1cf}.intro-world{position:absolute;inset:-5%;background:var(--village-scene) center/cover;filter:brightness(.12) blur(5px);transform:scale(1.08);z-index:-2;transition:filter 2s,transform 3s}.intro-tools{position:absolute;top:24px;right:28px;left:28px;display:flex;justify-content:space-between;gap:12px;z-index:10}.intro-tools button{color:#f9e3b3;background:#15272b99;border:1px solid #a88c5d77;border-radius:24px;min-height:44px;padding:9px 18px;font-size:12px}.scroll-arrival{width:min(800px,88vw);text-align:center;perspective:1200px;animation:invitation-arrives 1.5s cubic-bezier(.16,.8,.23,1.1) both;position:relative;z-index:3}.invitation-hint{font:400 20px/1.3 "Quest Display",sans-serif;color:#dfcca5;letter-spacing:.03em;margin:0 0 32px}.discovery-scroll{display:block;position:relative;width:100%;margin:0;border:0;padding:24px 30px;color:#38213c;background:none;filter:drop-shadow(0 25px 35px #000b);border-radius:35px;cursor:pointer}.scroll-paper{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;isolation:isolate;height:29px;overflow:clip;background:linear-gradient(90deg,#bc8d4c,#f9dda1 5%,#fff0c4 14%,#f8dfa9 50%,#fff0c4 86%,#e6bd7a 96%,#ab7941);border-left:1px solid #98683c;border-right:1px solid #98683c;box-shadow:inset 0 8px 14px #9f6b3e44,inset 0 -8px 14px #9f6b3e44;transition:height 1.65s cubic-bezier(.18,.74,.1,1)}.scroll-paper:before{content:"";position:absolute;inset:0;background:url('assets/trail-map.svg') center/cover;opacity:.12;z-index:-1}.scroll-paper:after{content:"";position:absolute;inset:16px;border:1px solid #ac844c66;border-radius:45% 45% 40% 40%/3% 3% 3% 3%;pointer-events:none}.scroll-roller{position:absolute;left:0;right:0;height:35px;border:1px solid #b58b55;border-radius:35% 35% 35% 35%/45%;background:linear-gradient(#986130,#e4bd7d 14%,#fff2c6 37%,#e7bf7f 70%,#a9763d);box-shadow:0 4px 4px #33200e66;z-index:3}.roller-top{top:11px}.roller-bottom{bottom:11px}.scroll-roller:before,.scroll-roller:after{content:"";position:absolute;left:-9px;top:3px;width:25px;height:26px;border-radius:50%;background:radial-gradient(ellipse,#8d5f34 7%,#e1b574 12%,#ac7d48 19%,#f4d69a 27%,#9b693a 33%,#d9ae70 41%,#ffe7ad 60%,#b48145);border:1px solid #986b3d;box-shadow:1px 1px 3px #4d2e21}.scroll-roller:after{left:auto;right:-9px}.scroll-lettering{font:400 clamp(42px,7.6vw,100px)/.97 "Quest Display",sans-serif;letter-spacing:.005em;max-width:95%;opacity:0;transform:translateY(8px) scale(.86);transition:opacity .8s .85s,transform 1.2s .65s;color:#39223f;text-shadow:0 1px 0 #fff8d8}.scroll-ornament{font-size:33px;color:#9b5f35;opacity:0;margin-bottom:17px}.scroll-flourish{width:38%;height:20px;border-bottom:2px solid #aa713a;border-radius:0 0 50% 50%;margin-top:13px;opacity:0}.scroll-seal{position:absolute;top:calc(50% - 27px);left:calc(50% - 27px);width:54px;height:54px;display:grid;place-items:center;border-radius:48%;background:radial-gradient(circle at 35% 25%,#e6b465,#b87735 72%);border:4px double #ffe0a2;color:#694027;font:400 23px "Quest Display",sans-serif;box-shadow:0 4px 6px #593d3077;transition:opacity .2s,transform .7s}.discovery-tagline{font:400 clamp(21px,3vw,34px)/1.3 "Quest Display",sans-serif;color:#ffe9ae;letter-spacing:.045em;opacity:0;transform:translateY(16px);transition:opacity 1s 1.35s,transform 1.2s 1.2s;margin:26px 0 18px;text-shadow:0 3px 10px #000}.enter-village{display:inline-flex;align-items:center;gap:28px;min-height:52px;padding:13px 25px;color:#3b253e;background:linear-gradient(#ffe7a0,#e9bb66);border:1px solid #e8c37f;border-radius:7px 12px 8px 10px;box-shadow:0 5px 0 #78532d,0 10px 20px #0005;font:400 19px "Quest Display",sans-serif;visibility:hidden;opacity:0}.intro-feedback{font-size:12px;color:#cbbb98;margin:25px 0 0}.intro-revealed .intro-world{filter:brightness(.28) blur(2px);transform:scale(1)}.intro-revealed .scroll-paper{height:292px}.intro-revealed .scroll-seal{opacity:0;transform:translateY(130px) rotate(75deg) scale(.4);pointer-events:none}.intro-revealed .scroll-lettering,.intro-revealed .scroll-ornament,.intro-revealed .scroll-flourish,.intro-revealed .discovery-tagline{opacity:1;transform:none}.intro-revealed .invitation-hint{opacity:0;transition:opacity .3s}.intro-revealed .enter-village{animation:enter-appears .65s 1.7s both;visibility:visible}.discovery-rays{position:absolute;width:90vmax;height:90vmax;left:calc(50% - 45vmax);top:calc(50% - 45vmax);background:repeating-conic-gradient(from 5deg,transparent 0deg 17deg,#e5bd6f22 18deg 20deg,transparent 21deg 33deg);opacity:0;mask-image:radial-gradient(circle,transparent 10%,black 20%,transparent 65%);pointer-events:none;z-index:0}.intro-revealed .discovery-rays{animation:discovery-rays 3s .5s ease-out both}.discovery-sparks{position:absolute;inset:0;pointer-events:none;z-index:2}.discovery-sparks i{position:absolute;left:50%;top:46%;width:12px;height:12px;background:#ffe8a3;clip-path:polygon(50% 0,60% 36%,100% 50%,60% 64%,50% 100%,40% 64%,0 50%,40% 36%);opacity:0;--a:0deg;--d:280px}.discovery-sparks i:nth-child(2){--a:30deg;--d:330px}.discovery-sparks i:nth-child(3){--a:60deg;--d:260px}.discovery-sparks i:nth-child(4){--a:90deg;--d:340px}.discovery-sparks i:nth-child(5){--a:120deg;--d:260px}.discovery-sparks i:nth-child(6){--a:150deg;--d:320px}.discovery-sparks i:nth-child(7){--a:180deg;--d:270px}.discovery-sparks i:nth-child(8){--a:210deg;--d:330px}.discovery-sparks i:nth-child(9){--a:240deg;--d:290px}.discovery-sparks i:nth-child(10){--a:270deg;--d:340px}.discovery-sparks i:nth-child(11){--a:300deg;--d:270px}.discovery-sparks i:nth-child(12){--a:330deg;--d:330px}.intro-revealed .discovery-sparks i{animation:discovery-spark 1.8s .65s ease-out both}
.journey-header{position:absolute;inset:0 0 auto;min-height:98px;padding:18px 26px;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;z-index:60;pointer-events:none;background:linear-gradient(#122b32a6,transparent)}.journey-header button{pointer-events:auto}.journey-brand{width:270px;padding:0;background:none;border:0;filter:drop-shadow(0 5px 4px #031a1f88)}.journey-header nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:650px}.journey-header nav button{border:1px solid #e1c68a;background:#29243de8;color:#ffe9b7;border-radius:24px;padding:9px 16px;min-height:44px;font:400 14px "Quest Display",sans-serif;box-shadow:0 3px 0 #0b262b77}.journey-header nav button[aria-pressed=true]{background:#e8c57e;color:#37213a}.journey-view{position:relative;height:100svh}.journey-viewport{position:absolute;inset:0;overflow:clip;perspective:1100px;perspective-origin:50% 45%;isolation:isolate;background:#5b8059}.scene-camera{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:50% 48%;transform:translate3d(0,0,-70px) rotateX(0deg) rotateY(0deg);transition:transform 1.9s cubic-bezier(.23,.75,.15,1)}.journey-scenery{position:absolute;inset:-14% -16%;background:var(--village-scene) center 65%/cover;transform:translateZ(-250px) scale(1.26);pointer-events:none;backface-visibility:hidden}.scenery-fork{display:none}.path-light{position:absolute;left:calc(50% - 17vw);width:34vw;bottom:-15vh;height:56vh;background:radial-gradient(ellipse,#ffe7a844,transparent 65%);transform:rotateX(63deg) translateZ(-25px);pointer-events:none}.scene-sunlight{position:absolute;inset:0;background:linear-gradient(#162d4022,transparent 45%,#152c2844);z-index:15;pointer-events:none}.foreground-arch{position:absolute;top:-10%;width:50%;height:62%;background:var(--journey-branch-a) center/contain no-repeat;filter:drop-shadow(0 15px 12px #1235279c);transform:translateZ(180px) rotate(-14deg);pointer-events:none;z-index:20}.arch-left{left:-19%}.arch-right{right:-19%;background-image:var(--journey-branch-b);transform:translateZ(205px) scaleX(-1) rotate(-12deg)}.foreground-flowers{position:absolute;left:-9%;bottom:-14%;width:45%;height:45%;background:var(--journey-branch-b) center/contain no-repeat;transform:translateZ(210px) rotate(25deg);filter:drop-shadow(0 -6px 10px #132c35bb);pointer-events:none;z-index:25}.village-friends,.trail-friends,.fork-friends,.destination-friends{position:absolute;inset:0;transform-style:preserve-3d;transition:opacity .7s,transform 1.2s}.trail-friends,.fork-friends,.destination-friends{opacity:0;visibility:hidden;pointer-events:none}.world-friend{position:absolute;bottom:26%;width:200px;height:220px;border:0;background:none;padding:0;filter:drop-shadow(0 9px 4px #1a2e3566);transform:translateZ(65px);border-radius:28px;cursor:pointer}.world-friend:before{content:"";position:absolute;left:8%;right:8%;bottom:12px;height:20px;background:#22372b66;border-radius:50%;filter:blur(6px);z-index:-1}.world-friend img{width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none}.world-friend span{position:absolute;left:50%;bottom:-17px;translate:-50% 0;display:inline-block;white-space:nowrap;font:400 15px "Quest Display",sans-serif;padding:6px 14px;background:#fff0cce8;border:1px solid #a38150;box-shadow:0 3px 0 #78573166;border-radius:7px 10px;pointer-events:none}.friend-kitten{left:28%;rotate:-3deg}.friend-puppy{right:27%;width:216px;rotate:3deg}.play-leaf{position:absolute;left:49%;bottom:34%;width:35px;height:20px;background:linear-gradient(120deg,#bdd66a,#4e9646);border:1px solid #32704e;border-radius:90% 0 90% 0;rotate:-25deg;transform:translateZ(65px);box-shadow:0 10px 5px #1b422766}.village-gate{position:absolute;left:calc(50% - 170px);bottom:26%;width:340px;height:193px;border:0;background:none;transform:translateZ(30px) scale(.56);transform-origin:center bottom;transition:transform 1.65s,opacity 1s;filter:drop-shadow(0 10px 7px #23413266);opacity:.6;pointer-events:none;transform-style:preserve-3d}.gate-post{position:absolute;bottom:0;width:27px;height:190px;border-radius:15px 15px 2px 2px;background:linear-gradient(90deg,#a58764,#fff4d2 35%,#dac79f 80%,#91714e);border:1px solid #8c6e48}.post-left{left:0}.post-right{right:0}.journey-gate-leaf{position:absolute;left:25px;bottom:12px;display:flex;gap:9px;height:145px;width:145px;transform-origin:left center;transition:transform 1.25s cubic-bezier(.2,.7,.3,1);backface-visibility:visible}.journey-gate-leaf i{height:100%;flex:1;background:linear-gradient(90deg,#c5ad83,#fff6d8 50%,#c7b18a);border:1px solid #90724c;border-radius:17px 17px 2px 2px}.journey-gate-leaf:before,.journey-gate-leaf:after{content:"";position:absolute;left:0;right:0;height:17px;top:48px;background:linear-gradient(#f7e6be,#bda073);border:1px solid #9a7a4f;z-index:1}.journey-gate-leaf:after{top:107px}.gate-right{left:auto;right:25px;transform-origin:right center}.gate-invitation{position:absolute;left:50%;top:85px;translate:-50% 0;white-space:nowrap;background:#d6a963;border:2px solid #926844;border-radius:5px;padding:7px 18px;font:400 18px "Quest Display",sans-serif;box-shadow:0 3px 0 #775037;transition:opacity .35s}.journey-viewport[data-gate=open] .gate-left{transform:rotateY(-100deg)}.journey-viewport[data-gate=open] .gate-right{transform:rotateY(100deg)}.journey-viewport[data-gate=open] .gate-invitation{opacity:0}.friend-mouse{left:23%;width:140px;height:195px;bottom:28%;transform:translateZ(40px)}.friend-badger{right:24%;width:175px;height:190px;bottom:28%;transform:translateZ(65px)}.friend-owl{left:24%;bottom:46%;height:120px;width:110px;transform:translateZ(-45px)}.friend-raven{right:20%;bottom:48%;height:124px;width:115px;transform:translateZ(-70px)}.friend-troll{left:27%;height:250px;width:220px;bottom:29%;transform:translateZ(30px)}.friend-gnome{right:25%;height:230px;width:180px;bottom:29%;transform:translateZ(55px)}.destination-friends .world-friend{opacity:0;visibility:hidden;pointer-events:none}.fork-signs{position:absolute;top:43%;left:50%;translate:-50% 0;display:flex;gap:70px;z-index:40}.fork-signs button{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:65px;min-width:225px;padding:12px 20px;color:#402b38;background:linear-gradient(110deg,#ffe6a2,#d4aa65);border:2px solid #966b42;border-radius:7px 13px 8px 6px;font:400 21px "Quest Display",sans-serif;box-shadow:0 6px 0 #805332,0 14px 18px #183a324d;rotate:-4deg}.fork-signs button+button{rotate:4deg;background:linear-gradient(110deg,#e1eeb5,#a4bd74);border-color:#677f48;box-shadow:0 6px 0 #566a3f,0 14px 18px #183a324d}.journey-story{position:absolute;bottom:27px;left:50%;translate:-50% 0;width:min(670px,calc(100% - 48px));z-index:50;color:#3e2940;text-align:center;isolation:isolate;padding:21px 30px 18px;filter:drop-shadow(0 8px 10px #142e2a55)}.journey-story:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,#e9c58a,#fff1cc 9%,#fff3d3 52%,#f5ddb0 94%,#c9a268);border:1px solid #ba935a;border-radius:18% 4% 6% 5%/7% 6% 7% 6%;box-shadow:inset 0 5px 10px #ffffe455,0 4px 0 #8a6738}.journey-chapter{margin:0 0 5px;font-size:10px;letter-spacing:.13em;color:#86603b;text-transform:uppercase;font-weight:800}.journey-story h1{font:400 clamp(26px,3vw,37px)/1.05 "Quest Display",sans-serif;letter-spacing:0;margin:0 0 9px;color:#4e2e4e;outline-offset:4px}.journey-story>p:not(.journey-chapter){font-size:13px;line-height:1.5;margin:0 auto;max-width:530px}.journey-live{font-size:11px!important;color:#77604b;min-height:17px;margin-top:7px!important}.journey-actions{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:13px}.journey-actions button{min-height:44px;padding:9px 18px;border:1px solid #805433;border-radius:6px 10px 7px 5px;background:linear-gradient(#ffe396,#e8bd73);box-shadow:0 3px 0 #8c623b;font:400 16px "Quest Display",sans-serif;display:inline-flex;gap:25px;align-items:center}.journey-actions #journey-back{font:600 11px "Segoe UI",sans-serif;background:#f7e9c5;gap:8px}.journey-map{position:absolute;left:22px;bottom:28px;z-index:55;color:#ffebbc;max-width:200px}.journey-map summary{cursor:pointer;padding:10px 16px;background:#272b36e8;border:1px solid #c3a46a;border-radius:24px;min-height:44px;display:flex;align-items:center;font:400 14px "Quest Display",sans-serif}.journey-map nav{display:grid;gap:4px;background:#29343ce8;border:1px solid #ab955e;border-radius:9px;padding:8px;position:absolute;bottom:55px;width:185px;box-shadow:0 10px 20px #0d282c66}.journey-map nav button{min-height:44px;border:1px solid #a48e5a66;border-radius:5px;background:#fff0c8;color:#422b42;text-align:left;padding:8px 11px;font-size:12px}.journey-map [aria-current=step]{background:#f6cf76;box-shadow:inset 4px 0 #9b5e4d}.prototype-note{position:fixed;bottom:4px;left:0;right:0;text-align:center;color:#eee7d2;font-size:9px;margin:0;z-index:56;pointer-events:none;text-shadow:0 1px 3px #193b30}

/* journey-v9.css */
@font-face{font-family:"Quest Display";src:url('assets/LilitaOne-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--quest-plum:#332039;--quest-gold:#ffe190;--quest-paper:#fff1cc;--journey-branch-a:url('assets/garden-branch-v8-a.webp');--journey-branch-b:url('assets/garden-branch-v8-b.webp');--village-scene:url('assets/journey-v9/garden-village-fork-v9.webp');--fork-scene:var(--village-scene)}
[data-stop=gate] .scene-camera{transform:translate3d(-20px,24px,140px) rotateY(-3deg)}[data-stop=trail] .scene-camera{transform:translate3d(45px,10px,200px) rotateY(3deg)}[data-stop=fork] .scene-camera{transform:translate3d(0,32px,265px) rotateY(0deg)}[data-stop=bridge] .scene-camera{transform:translate3d(180px,28px,270px) rotateY(8deg)}[data-stop=garden] .scene-camera{transform:translate3d(-180px,28px,270px) rotateY(-8deg)}[data-stop=gate] .village-friends{opacity:0;visibility:hidden;pointer-events:none;transform:translateZ(100px) translateY(80px)}[data-stop=gate] .village-gate{transform:translateZ(85px) scale(1.05);opacity:1;pointer-events:auto}[data-stop=trail] .scenery-fork,[data-stop=fork] .scenery-fork,[data-stop=bridge] .scenery-fork,[data-stop=garden] .scenery-fork{opacity:1}[data-stop=trail] .village-friends,[data-stop=fork] .village-friends,[data-stop=bridge] .village-friends,[data-stop=garden] .village-friends{opacity:0;visibility:hidden;pointer-events:none}[data-stop=trail] .village-gate,[data-stop=fork] .village-gate,[data-stop=bridge] .village-gate,[data-stop=garden] .village-gate{transform:translateZ(390px) scale(2.6);opacity:0;visibility:hidden;pointer-events:none}[data-stop=trail] .trail-friends,[data-stop=fork] .fork-friends{opacity:1;visibility:visible;pointer-events:auto}[data-stop=bridge] .destination-friends,[data-stop=garden] .destination-friends{opacity:1;visibility:visible}[data-stop=bridge] .friend-troll,[data-stop=garden] .friend-gnome{opacity:1;visibility:visible;pointer-events:auto}.playing .friend-kitten{animation:kitten-play 2.6s ease-in-out both}.playing .friend-puppy{animation:puppy-play 2.6s .15s ease-in-out both}.playing .play-leaf{animation:leaf-play 2.6s ease-in-out both}
#journey-app:not([data-view=scene]) .journey-header{position:relative;background:#273c37;min-height:100px}#journey-app[data-view=intro] .journey-header{display:none}#journey-app[data-view=catalogue],#journey-app[data-view=notes]{background:#fff5dc;min-height:100svh;padding-bottom:35px}#journey-app:not([data-view=scene]) .prototype-note{position:static;color:#806950;margin:25px auto 10px;max-width:600px;padding:0 20px;text-shadow:none}.journey-content-view{padding-top:25px}.view-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:10px;letter-spacing:.1em}.view-toolbar>p{margin:0}.view-toolbar button{font-size:12px;min-height:44px;padding:8px 15px;border:1px solid #b29268;background:#ffedbf;border-radius:7px}.view-title{font:400 clamp(33px,5vw,52px)/1.1 "Quest Display",sans-serif;margin-top:23px;margin-bottom:20px;letter-spacing:0;color:#523355}.journey-content-view .quest-catalogue{padding-top:12px}.journey-content-view .catalogue-intro>h2{font-family:"Quest Display",sans-serif;font-weight:400;font-size:30px}.journey-content-view .catalogue-notes-links{flex-wrap:wrap}.journey-content-view .book-detail h3,.journey-content-view .planned-series h3{font-family:"Quest Display",sans-serif;font-weight:400}.journey-content-view .coming,.journey-content-view .how,.journey-content-view .inside{margin-top:30px}.journey-content-view .parent-brief{margin-top:30px}.journey-content-view .parent-brief>img{max-height:230px;object-fit:contain}.journey-content-view .catalogue-facet-menu>h3{font-family:"Quest Display",sans-serif;font-weight:400}.journey-content-view :focus-visible{outline-color:#9c466f}.journey-content-view .catalogue-notes-links a{font-size:12px}
@media(max-width:1050px){.journey-header{padding:14px 18px}.journey-brand{width:245px}.journey-header nav{max-width:450px}.journey-header nav button{font-size:12px;padding:9px 13px}.journey-story{bottom:38px;width:min(610px,calc(100% - 60px));padding:18px 25px}.journey-map{bottom:12px;left:13px}.journey-map summary{font-size:11px;padding:8px 12px}.world-friend{width:170px;height:185px;bottom:31%}.friend-kitten{left:25%}.friend-puppy{right:24%;width:185px}.friend-mouse{left:25%;width:120px;height:170px}.friend-badger{right:24%;width:145px;height:165px}.friend-owl{left:24%;bottom:48%;height:100px;width:95px}.friend-raven{right:24%;bottom:49%;height:105px;width:100px}.friend-troll{left:30%;width:175px;height:210px}.friend-gnome{right:29%;width:150px;height:200px}.fork-signs{gap:35px;top:41%}.fork-signs button{font-size:17px;min-width:185px;padding:10px 15px}.village-gate{bottom:33%}.foreground-arch{top:-9%;width:62%;height:62%}.arch-left{left:-29%}.arch-right{right:-29%}.foreground-flowers{left:-15%;bottom:-10%;width:48%;height:40%}}
@media(max-width:600px){.intro-tools{inset:15px 14px auto}.intro-tools button{font-size:10px;padding:9px 12px}.scroll-arrival{width:86vw}.invitation-hint{font-size:15px;margin-bottom:25px}.discovery-scroll{padding:24px 13px}.scroll-roller{height:28px}.scroll-roller:before,.scroll-roller:after{height:22px;width:19px;top:2px}.roller-top{top:11px}.roller-bottom{bottom:11px}.intro-revealed .scroll-paper{height:245px}.scroll-lettering{font-size:52px;line-height:1.03;max-width:90%}.scroll-ornament{font-size:26px}.discovery-tagline{font-size:22px;max-width:280px;margin:25px auto 20px}.enter-village{font-size:15px;padding:12px 18px;gap:14px}.intro-feedback{font-size:10px}.journey-header{padding:10px 13px;align-items:center;flex-direction:column;gap:7px;background:linear-gradient(#142d39ee,#1b333966,transparent);min-height:130px}.journey-brand{width:250px}.journey-header nav{justify-content:center;gap:6px;max-width:100%}.journey-header nav button{font-size:10px;min-height:44px;padding:8px 11px}.journey-header nav button[data-open-view=notes]{display:none}.journey-story{bottom:58px;width:calc(100% - 30px);padding:16px 17px 14px}.journey-story h1{font-size:27px}.journey-story>p:not(.journey-chapter){font-size:11px;line-height:1.45}.journey-live{font-size:10px!important;min-height:15px}.journey-actions{margin-top:10px;gap:8px}.journey-actions button{font-size:14px;padding:9px 14px;gap:10px}.journey-actions #journey-back{font-size:9px;padding:8px 9px}.journey-chapter{font-size:9px}.journey-map{bottom:14px;left:15px}.journey-map summary{min-height:38px;font-size:10px}.journey-map nav{bottom:47px}.prototype-note{display:none}.journey-scenery{inset:-7% -53%;background-position:center 65%}.foreground-arch{top:2%;width:96%;height:43%}.arch-left{left:-57%}.arch-right{right:-57%}.foreground-flowers{left:-34%;bottom:-4%;width:84%;height:38%}.world-friend{bottom:39%;width:135px;height:155px;transform:translateZ(20px)}.friend-kitten{left:14%}.friend-puppy{right:11%;width:142px}.world-friend span{font-size:12px;padding:5px 11px;bottom:-12px}.play-leaf{bottom:48%;width:24px;height:14px;left:47%;transform:translateZ(20px)}.village-gate{width:260px;left:calc(50% - 130px);bottom:43%;height:160px}.gate-post{height:160px;width:22px}.journey-gate-leaf{width:109px;height:125px;gap:6px;left:20px}.gate-right{left:auto;right:20px}.journey-gate-leaf:before{top:43px;height:13px}.journey-gate-leaf:after{top:91px;height:13px}.gate-invitation{top:76px;font-size:16px;padding:6px 12px}[data-stop=gate] .village-gate{transform:translateZ(25px) scale(.9)}.friend-mouse{left:19%;bottom:42%;width:85px;height:135px;transform:translateZ(10px)}.friend-badger{right:16%;bottom:42%;width:106px;height:130px;transform:translateZ(20px)}.friend-owl{left:20%;bottom:58%;width:70px;height:85px;transform:translateZ(-15px)}.friend-raven{right:16%;bottom:58%;width:70px;height:85px;transform:translateZ(-15px)}.friend-troll{left:31%;bottom:41%;width:137px;height:175px;transform:translateZ(15px)}.friend-gnome{right:31%;bottom:41%;width:120px;height:170px;transform:translateZ(15px)}.fork-signs{top:41%;gap:15px;width:calc(100% - 42px);align-items:stretch}.fork-signs button{min-width:0;width:50%;font-size:15px;gap:7px;padding:10px 12px;min-height:65px}[data-stop=gate] .scene-camera{transform:translate3d(-7px,16px,100px) rotateY(-2deg)}[data-stop=trail] .scene-camera{transform:translate3d(10px,15px,130px) rotateY(2deg)}[data-stop=fork] .scene-camera{transform:translate3d(0,18px,155px)}[data-stop=bridge] .scene-camera{transform:translate3d(65px,15px,175px) rotateY(7deg)}[data-stop=garden] .scene-camera{transform:translate3d(-65px,15px,175px) rotateY(-7deg)}#journey-app:not([data-view=scene]) .journey-header{min-height:135px}.view-toolbar{font-size:9px}.view-toolbar button{font-size:11px}.view-title{font-size:34px}.journey-content-view .quest-catalogue{margin-top:0}.journey-content-view .catalogue-intro>h2{font-size:25px}}
@media(max-height:640px) and (min-width:601px){.journey-story{width:560px;padding:12px 24px;bottom:17px}.journey-story h1{font-size:26px}.journey-story>p:not(.journey-chapter){font-size:11px}.journey-actions{margin-top:8px}.world-friend{bottom:34%;height:145px;width:160px}.journey-map{bottom:15px}.intro-revealed .scroll-paper{height:210px}.scroll-arrival{max-width:650px}.invitation-hint{margin-bottom:8px}.scroll-ornament{font-size:24px;margin-bottom:8px}.discovery-tagline{margin:12px 0}.intro-feedback{margin-top:13px}}
#journey-app[data-motion=still] *,#journey-app[data-motion=still] *:before,#journey-app[data-motion=still] *:after{animation:none!important;transition:none!important}.intro-revealed[data-motion=still] .enter-village,#journey-app[data-motion=still] .intro-revealed .enter-village{opacity:1;visibility:visible}#journey-app[data-motion=still] .scroll-arrival{transform:none;opacity:1}#journey-app[data-motion=still] .discovery-sparks,#journey-app[data-motion=still] .discovery-rays{display:none}
@media(prefers-reduced-motion:reduce){#journey-app *,#journey-app *:before,#journey-app *:after{animation:none!important;transition:none!important}.intro-revealed .enter-village{opacity:1;visibility:visible}.scroll-arrival{opacity:1;transform:none}.discovery-sparks,.discovery-rays{display:none}}
@keyframes invitation-arrives{from{transform:translateY(-65vh) rotateX(24deg) rotateZ(-9deg);opacity:0}65%{opacity:1}to{transform:translateY(0) rotateX(0) rotateZ(0);opacity:1}}@keyframes enter-appears{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes discovery-rays{0%{opacity:0;transform:scale(.3) rotate(-14deg)}25%{opacity:.95}to{opacity:0;transform:scale(1.3) rotate(18deg)}}@keyframes discovery-spark{0%{opacity:0;transform:rotate(var(--a)) translateX(40px) scale(.3)}20%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(1.4)}}@keyframes kitten-play{0%,100%{translate:0 0}35%{translate:48px -9px;rotate:3deg}65%{translate:75px 3px;rotate:-1deg}}@keyframes puppy-play{0%,100%{translate:0 0}35%{translate:-38px 5px;rotate:-3deg}65%{translate:-65px -5px;rotate:1deg}}@keyframes leaf-play{0%{translate:0 0;rotate:-25deg}40%{translate:45px -50px;rotate:160deg}70%{translate:-15px -20px;rotate:290deg}100%{translate:0 0;rotate:335deg}}
.intro-revealed .enter-village{visibility:hidden;animation-name:enter-ready}@keyframes enter-ready{from{opacity:0;visibility:hidden;translate:0 8px}to{opacity:1;visibility:visible;translate:0 0}}#journey-app[data-motion=still] .intro-revealed .enter-village{visibility:visible;opacity:1}@media(prefers-reduced-motion:reduce){.intro-revealed .enter-village{visibility:visible;opacity:1}}
/* Shared landscape and camera coordinates are retained across every stop. */
body:has(#journey-app[data-view=intro]),body:has(#journey-app[data-view=scene]){height:100svh;overflow:hidden}
.scroll-seal{z-index:4}.scenery-fork{display:none!important}
[data-stop=glade] .village-gate{opacity:0;visibility:hidden}
.world-friend.greeted span{background:#ffe193;box-shadow:0 0 0 3px #fff4c077,0 3px 0 #78573166}
@media(min-width:601px){.world-friend{bottom:40%}.friend-mouse,.friend-badger{bottom:44%}.friend-owl,.friend-raven{bottom:57%}.friend-troll,.friend-gnome{bottom:44%}.village-gate{bottom:43%}}
@media(max-width:600px){.journey-header nav button[data-open-view=notes]{display:block;padding:8px 9px}.journey-header nav button{padding-left:9px;padding-right:9px}.playing .friend-kitten{animation-name:small-kitten-play}.playing .friend-puppy{animation-name:small-puppy-play}.playing .play-leaf{animation-name:small-leaf-play}}
@keyframes small-kitten-play{0%,100%{translate:0 0}45%{translate:10px -7px;rotate:1deg}}
@keyframes small-puppy-play{0%,100%{translate:0 0}45%{translate:-8px -4px;rotate:-1deg}}
@keyframes small-leaf-play{0%,100%{translate:0 0}45%{translate:4px -22px;rotate:160deg}}
.gate-invitation{z-index:5;transform:translateZ(4px)}
@media(min-width:601px){[data-stop=bridge] .scene-camera{transform:translate3d(450px,28px,350px) rotateY(10deg)}[data-stop=garden] .scene-camera{transform:translate3d(-450px,28px,350px) rotateY(-10deg)}.friend-troll{left:7%}.friend-gnome{right:7%}}
@media(max-width:600px){[data-stop=bridge] .scene-camera{transform:translate3d(235px,15px,225px) rotateY(7deg)}[data-stop=garden] .scene-camera{transform:translate3d(-235px,15px,225px) rotateY(-7deg)}.friend-troll{left:-28%}.friend-gnome{right:-28%}}
.journey-map summary{min-height:44px}
@media(min-width:601px){[data-stop=bridge] .scene-camera{transform:translate3d(clamp(210px,35vw,450px),28px,350px) rotateY(10deg)}[data-stop=garden] .scene-camera{transform:translate3d(clamp(-450px,-35vw,-210px),28px,350px) rotateY(-10deg)}}
@media(max-width:600px){[data-stop=bridge] .scene-camera{transform:translate3d(60vw,15px,225px) rotateY(7deg)}[data-stop=garden] .scene-camera{transform:translate3d(-60vw,15px,225px) rotateY(-7deg)}}

/* journey-v10.css */
/* Cover-derived invitation, a deeper shared camera, and discoverable garden boughs. */
:root{--invitation-paper:url('assets/invitation-v10/parchment-ribbon-v10.webp');--seal-surface:radial-gradient(circle at 33% 24%,#e94d83,#a51e5a 65%,#681643)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.scroll-arrival{width:min(920px,91vw)}.invitation-hint{font-size:20px;color:#ffdfa1;letter-spacing:.035em;text-shadow:0 3px 0 #33213c,0 6px 15px #070719;margin-bottom:30px}.banner-invitation{position:relative;min-height:260px;display:grid;place-items:center;perspective:1200px;filter:drop-shadow(0 20px 24px #080b18b3)}.invitation-closed{position:absolute;inset:0;background:var(--invitation-paper) center/100% auto no-repeat;z-index:3;transition:transform 1.5s cubic-bezier(.2,.8,.15,1),opacity 1s .3s;transform-origin:center 10%}.paper-fold{position:absolute;left:8%;right:8%;height:36%;top:25%;background:linear-gradient(105deg,#d6a45e,#fff0bb 12%,#f8df9f 74%,#cf934f);border:1px solid #b3784288;box-shadow:0 5px 8px #7c4b3844;clip-path:polygon(0 0,100% 0,100% 15%,50% 100%,0 15%)}.fold-lower{top:auto;bottom:24%;rotate:180deg;opacity:.88}.invitation-twine{position:absolute;inset:14% auto 14% calc(50% - 3px);width:6px;background:linear-gradient(90deg,#9b663e,#ffe5a7 50%,#a27342);border-radius:3px;box-shadow:1px 1px 2px #79472e88}.invitation-inside{position:relative;z-index:2;width:100%;min-height:220px;display:grid;place-items:center;opacity:0;transform:scaleY(.18) rotateX(35deg);transition:transform 1.65s .1s cubic-bezier(.2,.8,.15,1),opacity .65s .3s}.invitation-inside .scroll-lettering{display:block;max-width:none;width:100%;font-size:0;opacity:1;transform:none;transition:none;filter:drop-shadow(0 8px 0 #3b183a77)}.invitation-inside .scroll-lettering img{width:100%;height:auto;max-width:none}.inside-stars{position:absolute;top:-18px;right:5%;color:#ffe14c;font-size:38px;rotate:18deg;opacity:0;text-shadow:0 2px 0 #7b3854;transition:opacity .5s 1s}.wax-seal{position:absolute;top:calc(50% - 65px);left:calc(50% - 65px);width:130px;height:130px;padding:0;border:0;background:none;border-radius:50%;z-index:8;cursor:pointer;filter:drop-shadow(0 8px 5px #49283b88);transition:filter .3s}.wax-seal:focus-visible{outline:3px solid #ffe16d;outline-offset:8px}.wax-seal:hover{filter:drop-shadow(0 8px 5px #49283b88) brightness(1.09)}.seal-half{position:absolute;inset:0;background-image:var(--seal-surface);background-size:100% 100%;background-repeat:no-repeat;border-radius:47%;transition:transform 1.1s cubic-bezier(.2,.8,.15,1),opacity .7s .3s;pointer-events:none}.seal-left{clip-path:polygon(0 0,53% 0,48% 13%,54% 27%,46% 40%,53% 56%,47% 72%,54% 86%,49% 100%,0 100%)}.seal-right{clip-path:polygon(53% 0,100% 0,100% 100%,49% 100%,54% 86%,47% 72%,53% 56%,46% 40%,54% 27%,48% 13%)}.seal-imprint{position:absolute;inset:19%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:#60133e;pointer-events:none;text-shadow:0 1px 0 #f784aa,0 -1px 1px #5d123a;font-family:"Quest Display",sans-serif;transition:opacity .35s,transform .8s}.seal-imprint svg{width:32px;height:32px;fill:#771845;filter:drop-shadow(0 1px 0 #f189af)}.seal-imprint b{font-weight:400;font-size:17px;line-height:.97;letter-spacing:.02em;display:block}.intro-revealed .invitation-closed{transform:rotateX(-80deg) translateY(-60px);opacity:0;pointer-events:none}.intro-revealed .invitation-inside{opacity:1;transform:none}.intro-revealed .inside-stars{opacity:1}.intro-revealed .seal-left{transform:translate(-88px,80px) rotate(-34deg);opacity:0}.intro-revealed .seal-right{transform:translate(96px,64px) rotate(28deg);opacity:0}.intro-revealed .seal-imprint{opacity:0;transform:translateY(30px) rotate(-15deg)}.intro-revealed .wax-seal{pointer-events:none}.intro-revealed .wax-seal:focus-visible{outline:none}.discovery-tagline{font-size:clamp(22px,3.3vw,43px);color:#ffe348;letter-spacing:.025em;-webkit-text-stroke:1.2px #432046;paint-order:stroke fill;text-shadow:-2px -2px 0 #fff6d5,2px -2px 0 #fff6d5,-2px 2px 0 #fff6d5,2px 2px 0 #fff6d5,0 5px 0 #442043,0 9px 14px #101125;margin-top:12px}.enter-village{font-size:19px;background:linear-gradient(#28d0d9,#00aabc);color:#fff6cf;border:2px solid #432047;text-shadow:0 2px 0 #4b3150;box-shadow:0 3px 0 #fff0c9,0 7px 0 #432047}.intro-feedback{font-size:12px}.journey-brand{width:335px}.journey-header nav button{font-size:15px}.journey-story{bottom:27px;width:min(720px,calc(100% - 48px));padding:14px 26px 16px}.journey-story h1{font:400 33px/1.04 "Quest Display",sans-serif;letter-spacing:.01em;text-transform:uppercase;color:#ffe04f;-webkit-text-stroke:1.1px #472048;paint-order:stroke fill;text-shadow:-1px -1px 0 #fff8df,1px -1px 0 #fff8df,-1px 1px 0 #fff8df,1px 1px 0 #fff8df,0 3px 0 #472048;margin:0 0 10px}.journey-story>p:not(.journey-chapter){font-size:13px;line-height:1.5}.journey-chapter{color:#a12b70;font-size:10px}.journey-actions{display:none}.journey-story:before{background:linear-gradient(105deg,#e7bd7b,#fff2c7 9%,#fff5d8 70%,#edca8b);box-shadow:0 4px 0 #9d704466,inset 0 3px 5px #fff9d888;border-color:#b78550}.path-entry{position:absolute;z-index:35;left:calc(50% - 75px);bottom:160px;width:150px;height:125px;padding:0;background:none;border:0;border-radius:50%;font-size:0!important;color:transparent;cursor:pointer;isolation:isolate}.path-entry:before,.path-entry:after{content:"";position:absolute;left:calc(50% - 12px);top:28%;width:15px;height:26px;border:2px solid #ffe997;border-radius:70% 60% 60% 80%;rotate:-18deg;background:#ffed9c18;box-shadow:0 0 14px #ffec9788;opacity:.26;transition:opacity .5s,translate .6s}.path-entry:after{left:calc(50% + 8px);top:9%;rotate:17deg;width:12px;height:22px;opacity:.18}.path-entry:hover:before,.path-entry:hover:after{opacity:.9;translate:0 -7px}.path-entry:focus-visible{outline:2px dashed #ffe891;outline-offset:-5px;background:#ffefb01a}.path-entry:focus-visible:after{content:attr(aria-label);position:absolute;top:auto;bottom:-15px;left:50%;translate:-50% 0;rotate:none;width:max-content;max-width:230px;height:auto;opacity:1;border:1px solid #b28e58;border-radius:6px;box-shadow:0 3px 0 #37253a66;background:#fff0c9;color:#442747;font:400 15px "Quest Display",sans-serif;padding:8px 13px}.path-back{position:absolute;right:22px;bottom:25px;z-index:56;min-width:49px;min-height:49px;padding:6px 11px;background:#34233be8;color:#ffe7a4;border:1px solid #c5a46b;border-radius:50%;box-shadow:0 4px 0 #18352e77}.path-back>span:first-child{font-size:25px;line-height:1}.path-back-caption{position:absolute;right:0;bottom:58px;width:max-content;max-width:160px;padding:7px 11px;background:#33273dec;border:1px solid #c4a268;border-radius:6px;font-size:11px;opacity:0;pointer-events:none}.path-back:hover .path-back-caption,.path-back:focus-visible .path-back-caption{opacity:1}.fork-signs{top:48%;gap:90px}.fork-signs button{font-size:22px}.prototype-note{font-size:9px}.journey-map summary{font-size:12px}
#journey-viewport{--cam-x:0px;--cam-y:0px;--cam-z:-90px;--cam-yaw:0deg;--cam-tilt:0deg;--frame-opacity:1}
#journey-viewport #scene-camera{transform:translate3d(var(--cam-x),var(--cam-y),var(--cam-z)) rotateX(var(--cam-tilt)) rotateY(var(--cam-yaw));transition:transform 3.25s cubic-bezier(.22,.66,.14,1)}
#journey-viewport[data-stop=gate]{--cam-z:250px;--cam-y:42px;--cam-tilt:-2deg;--frame-opacity:.85}
#journey-viewport[data-stop=trail]{--cam-z:580px;--cam-y:62px;--cam-tilt:-2deg;--frame-opacity:.22}
#journey-viewport[data-stop=fork]{--cam-z:690px;--cam-y:65px;--cam-tilt:-1deg;--frame-opacity:.08}
#journey-viewport[data-stop=bridge]{--cam-z:700px;--cam-x:clamp(210px,35vw,450px);--cam-y:45px;--cam-yaw:6deg;--cam-tilt:-1deg;--frame-opacity:0}
#journey-viewport[data-stop=garden]{--cam-z:700px;--cam-x:clamp(-450px,-35vw,-210px);--cam-y:45px;--cam-yaw:-6deg;--cam-tilt:-1deg;--frame-opacity:0}
.foreground-arch,.foreground-flowers{opacity:var(--frame-opacity);transition:opacity 2.5s}.journey-scenery{transform:translateZ(-250px) scale(1.26)}.village-gate{bottom:38%;transition:transform 3s ease,opacity 1.7s ease;transform-origin:center bottom}#journey-viewport[data-stop=gate] .village-gate{transform:translateZ(-70px) scale(1.1)}#journey-viewport[data-stop=trail] .village-gate{visibility:visible;transform:translateZ(350px) scale(2.6);pointer-events:none;opacity:0}
.discovery-thicket{position:absolute;transform-style:preserve-3d;isolation:isolate}.discovery-thicket>.world-friend{inset:0;width:100%;height:100%;bottom:auto;left:0;right:auto;transform:none;rotate:0;filter:drop-shadow(0 8px 4px #1a2e3566);z-index:1}.discovery-thicket>.world-friend:before{bottom:8px}.discovery-thicket>.world-friend img{height:100%;width:100%;object-fit:contain;object-position:center bottom}.thicket-branch{display:block;position:absolute;z-index:3;top:17%;left:-48%;width:168%;height:90%;transform-origin:8% 65%;pointer-events:none!important;will-change:transform;filter:drop-shadow(0 9px 7px #19342a99)}.thicket-branch>i{display:block;position:absolute;inset:0;background:var(--journey-branch-a) center/contain no-repeat;rotate:19deg;pointer-events:none}.thicket-branch[data-thicket-side=right]{left:auto;right:-51%;top:29%;transform-origin:92% 65%}.thicket-branch[data-thicket-side=right]>i{background-image:var(--journey-branch-b);scale:-1 1;rotate:-18deg}.discovery-thicket [data-discovery-caption]{z-index:6;bottom:-19px;width:max-content;max-width:180px;white-space:normal;text-align:center;font-size:13px;line-height:1.2;padding:6px 10px;border:1px solid #a77845;box-shadow:0 3px 0 #77533177;opacity:1;background:#ffedbd;pointer-events:none}.discovery-thicket.is-focused .thicket-branch,.discovery-thicket.discovered .thicket-branch{opacity:.1}.foliage-static .discovery-thicket.is-focused .thicket-branch,.foliage-static .discovery-thicket.discovered .thicket-branch{opacity:.1}.discovery-thicket:not(.is-near):not(.is-focused):not(.discovered) .world-friend img{filter:brightness(.83)}.thicket-mouse{left:23%;bottom:37%;width:140px;height:195px;transform:translateZ(-260px)}.thicket-badger{right:24%;bottom:37%;width:175px;height:190px;transform:translateZ(-260px)}.thicket-owl{left:24%;bottom:52%;width:110px;height:120px;transform:translateZ(-310px)}.thicket-raven{right:20%;bottom:52%;width:115px;height:124px;transform:translateZ(-310px)}.thicket-troll{left:7%;bottom:43%;width:220px;height:250px;transform:translateZ(-370px)}.thicket-gnome{right:7%;bottom:43%;width:180px;height:230px;transform:translateZ(-370px)}.destination-friends .discovery-thicket>.world-friend{opacity:1;visibility:visible;pointer-events:auto}.destination-friends .discovery-thicket{opacity:0;visibility:hidden;pointer-events:none}#journey-viewport[data-stop=bridge] .thicket-troll,#journey-viewport[data-stop=garden] .thicket-gnome{opacity:1;visibility:visible;pointer-events:auto}.world-friend span{font-family:"Quest Display",sans-serif}.journey-content-view .view-title{font-family:"Quest Display",sans-serif;color:#492149;text-transform:uppercase}
@media(max-width:1050px){.journey-brand{width:290px}.journey-header nav button{font-size:12px}.journey-story{width:min(630px,calc(100% - 64px));bottom:35px;padding:13px 20px}.journey-story h1{font-size:29px}.path-entry{bottom:180px}.thicket-mouse{width:120px;height:170px}.thicket-badger{width:145px;height:165px}.thicket-owl{width:95px;height:105px}.thicket-raven{width:100px;height:110px}.thicket-troll{width:175px;height:210px}.thicket-gnome{width:150px;height:200px}}
@media(max-width:600px){.scroll-arrival{width:92vw}.invitation-hint{font-size:15px;max-width:260px;margin:0 auto 18px}.banner-invitation{min-height:205px}.invitation-inside{min-height:170px}.invitation-closed{background-size:120% auto}.paper-fold{left:5%;right:5%;top:29%;height:29%}.fold-lower{top:auto;bottom:28%}.invitation-twine{inset:22% auto 22% calc(50% - 2px);width:4px}.wax-seal{width:103px;height:103px;left:calc(50% - 51.5px);top:calc(50% - 51.5px)}.seal-imprint{inset:19%}.seal-imprint svg{width:25px;height:25px}.seal-imprint b{font-size:14px}.intro-revealed .seal-left{transform:translate(-57px,60px) rotate(-32deg)}.intro-revealed .seal-right{transform:translate(57px,50px) rotate(28deg)}.discovery-tagline{font-size:27px;line-height:1.1;max-width:300px;margin:10px auto 21px;-webkit-text-stroke:1px #432046}.enter-village{font-size:15px}.intro-feedback{font-size:11px;max-width:290px;margin:23px auto 0}.journey-brand{width:270px}.journey-header nav button{font-size:10px}.journey-story{bottom:64px;width:calc(100% - 30px);padding:13px 17px}.journey-story h1{font-size:26px;line-height:1.04;margin-bottom:10px}.journey-story>p:not(.journey-chapter){font-size:12px;line-height:1.45}.journey-chapter{font-size:8px}.path-entry{left:calc(50% - 48px);width:96px;height:105px;bottom:220px}.path-entry:before{opacity:.46}.path-entry:after{opacity:.35}.path-back{right:16px;bottom:14px;min-width:44px;min-height:44px}.path-back>span:first-child{font-size:23px}.path-back-caption{display:none}.journey-map{bottom:14px}.journey-map summary{font-size:10px}.fork-signs{top:39%;gap:15px}.fork-signs button{font-size:15px}.thicket-mouse{left:18%;bottom:36%;width:90px;height:135px;transform:translateZ(-220px)}.thicket-badger{right:16%;bottom:36%;width:110px;height:135px;transform:translateZ(-220px)}.thicket-owl{left:20%;bottom:55%;width:78px;height:92px;transform:translateZ(-240px)}.thicket-raven{right:16%;bottom:55%;width:78px;height:92px;transform:translateZ(-240px)}.thicket-troll{left:-28%;bottom:39%;width:137px;height:175px;transform:translateZ(-260px)}.thicket-gnome{right:-28%;bottom:39%;width:125px;height:175px;transform:translateZ(-260px)}.discovery-thicket [data-discovery-caption]{font-size:11px;max-width:140px}.village-gate{bottom:39%}#journey-viewport[data-stop=gate] .village-gate{transform:translateZ(-60px) scale(.95)}#journey-viewport{--cam-z:-70px}#journey-viewport[data-stop=gate]{--cam-z:140px;--cam-y:20px;--cam-tilt:-2deg}#journey-viewport[data-stop=trail]{--cam-z:340px;--cam-y:25px;--cam-tilt:-2deg}#journey-viewport[data-stop=fork]{--cam-z:420px;--cam-y:30px;--cam-tilt:-1deg}#journey-viewport[data-stop=bridge]{--cam-z:460px;--cam-x:60vw;--cam-y:20px;--cam-yaw:7deg}#journey-viewport[data-stop=garden]{--cam-z:460px;--cam-x:-60vw;--cam-y:20px;--cam-yaw:-7deg}}
@media(max-height:640px) and (min-width:601px){.banner-invitation{min-height:180px}.invitation-inside{min-height:160px}.scroll-arrival{max-width:700px}.wax-seal{width:100px;height:100px;top:calc(50% - 50px);left:calc(50% - 50px)}.seal-imprint b{font-size:13px}.seal-imprint svg{width:24px;height:24px}.discovery-tagline{font-size:28px;margin:7px 0 16px}.journey-story h1{font-size:25px}.journey-story{padding:10px 22px;bottom:22px}.path-entry{bottom:145px;height:90px}}
#journey-app[data-motion=still] .invitation-inside,#journey-app[data-motion=still] .invitation-closed,#journey-app[data-motion=still] .thicket-branch{transition:none!important}#journey-app[data-motion=still] .intro-revealed .seal-half{opacity:0;transform:none}@media(prefers-reduced-motion:reduce){.invitation-inside,.invitation-closed,.thicket-branch{transition:none!important}.intro-revealed .seal-half{opacity:0;transform:none}}
:root{--seal-surface:url("assets/invitation-v10/wax-seal-v10.webp")}
/* Pass pointer input through camera/decorative planes to actual scene controls. */
#scene-camera{pointer-events:none}#scene-camera .world-friend,#scene-camera #village-gate{pointer-events:auto}#scene-camera #village-gate:disabled{pointer-events:none}.destination-friends .discovery-thicket>.world-friend{visibility:inherit}
.journey-story h1,.discovery-tagline{-webkit-text-stroke:2.4px #3d1e45;paint-order:stroke fill;text-shadow:0 3px 0 #6c3557;filter:drop-shadow(-1px 0 0 #fff5d6) drop-shadow(1px 0 0 #fff5d6) drop-shadow(0 -1px 0 #fff5d6)}
.journey-scenery{transform:translateZ(-500px) scale(1.5)}
.thicket-mouse,.thicket-badger{bottom:43%}.thicket-troll,.thicket-gnome{bottom:48%}
@media(max-width:600px){.thicket-mouse,.thicket-badger{bottom:43%}.thicket-troll,.thicket-gnome{bottom:46%}}
/* The thicket's invisible depth plane must never intercept its native button. */
.discovery-thicket{pointer-events:none!important}.discovery-thicket>.world-friend{pointer-events:auto!important}
@media(max-width:600px){.fork-signs{top:51%}}
#scene-camera *{pointer-events:none!important}#scene-camera button{pointer-events:auto!important}#scene-camera button:disabled{pointer-events:none!important}
.discovery-thicket>[data-discovery-caption]{position:absolute;left:50%;translate:-50% 0;z-index:8;display:inline-block;pointer-events:none}
/* Fork choices have their own reserved row, outside every character hit area. */
.journey-reading-dock{position:absolute;left:50%;bottom:27px;translate:-50% 0;width:min(720px,calc(100% - 48px));z-index:50;display:grid;gap:12px;pointer-events:none}
.journey-reading-dock>.journey-story{position:relative;left:auto;bottom:auto;translate:none;width:100%;pointer-events:none}
.journey-reading-dock>.fork-signs{position:static;left:auto;top:auto;translate:none;width:min(510px,100%);display:flex;gap:14px;margin:auto;align-items:stretch;pointer-events:none}
.journey-reading-dock>.fork-signs button{flex:1;min-width:0;min-height:48px;width:50%;padding:8px 14px;font-size:17px;gap:10px;rotate:-1.5deg;box-shadow:0 3px 0 #805332,0 5px 8px #183a324d;pointer-events:auto}
.journey-reading-dock>.fork-signs button+button{rotate:1.5deg;box-shadow:0 3px 0 #566a3f,0 5px 8px #183a324d}
@media(max-width:1050px){.journey-reading-dock{width:min(630px,calc(100% - 64px));bottom:35px}}
@media(max-width:600px){.journey-reading-dock{width:calc(100% - 30px);bottom:64px;gap:10px}.journey-reading-dock>.fork-signs{gap:12px}.journey-reading-dock>.fork-signs button{font-size:14px;padding:8px 11px;min-height:46px;gap:6px}}
@media(max-height:640px) and (min-width:601px){.journey-reading-dock{bottom:22px;gap:9px}.journey-reading-dock>.fork-signs button{min-height:44px;font-size:15px}}
.journey-reading-dock>.journey-story{grid-row:2}.journey-reading-dock>.fork-signs{grid-row:1}
#journey-viewport #scene-camera{transition-duration:1.45s}
.path-entry:before{opacity:.56}.path-entry:after{opacity:.4}.path-entry:hover:before,.path-entry:hover:after{opacity:1}
@media(max-width:600px){.path-entry{left:calc(50% - 32px);top:25%;bottom:auto;width:64px;height:64px}}
@media(max-width:350px){.village-friends>.friend-kitten{left:10%}.village-friends>.friend-puppy{right:7%}}

/* journey-magic-v10.css */
/* Scenery-only magic. All three planes belong inside #scene-camera. */
#journey-viewport {
  --journey-magic: 0;
  --magic-bridge-bloom: .55;
  --magic-garden-bloom: .55;
}
#journey-viewport[data-stop="glade"] { --journey-magic: 0; }
#journey-viewport[data-stop="gate"] { --journey-magic: .08; }
#journey-viewport[data-stop="trail"] { --journey-magic: .2; }
#journey-viewport[data-stop="fork"] { --journey-magic: .45; }
#journey-viewport[data-stop="bridge"] {
  --journey-magic: .75;
  --magic-bridge-bloom: 1;
  --magic-garden-bloom: .35;
}
#journey-viewport[data-stop="garden"] {
  --journey-magic: 1;
  --magic-bridge-bloom: .35;
  --magic-garden-bloom: 1;
}

#scene-camera .journey-magic-plane,
#scene-camera .journey-magic-plane * {
  pointer-events: none !important;
  user-select: none;
}
.journey-magic-plane {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  transform-origin: 50% 50%;
  /* Keep opacity/filter off the plane so its 3D depth is not flattened. */
}
.journey-magic-far { transform: translateZ(-420px) scale(1.38); }
.journey-magic-mid { transform: translateZ(-300px) scale(1.27); }
.journey-magic-near { transform: translateZ(-160px) scale(1.15); }

.journey-magic-light {
  position: absolute;
  left: var(--magic-x);
  top: var(--magic-y);
  width: var(--magic-size, 4px);
  height: var(--magic-size, 4px);
  border-radius: 50%;
  background: radial-gradient(circle, #fffce0 0 16%, var(--magic-colour, #9aece6) 36% 52%, transparent 74%);
  box-shadow: 0 0 7px 2px var(--magic-colour, #9aece6), 0 0 1px #43234c;
  opacity: calc(var(--journey-magic) * var(--magic-strength, .76));
  transition: opacity 2.4s ease;
  animation: journey-magic-drift var(--magic-duration, 19s) ease-in-out var(--magic-delay, 0s) infinite alternate;
  animation-play-state: paused;
}
#journey-viewport:is([data-stop="gate"], [data-stop="trail"], [data-stop="fork"], [data-stop="bridge"], [data-stop="garden"]) .journey-magic-light {
  animation-play-state: running;
}

/* Soft colour stays among plant beds, never a screen-sized tint or star field. */
.journey-magic-plant {
  position: absolute;
  left: var(--magic-x);
  top: var(--magic-y);
  width: var(--magic-bed-width, 140px);
  height: var(--magic-bed-height, 52px);
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 65%, #adf3e979, #55d1cc36 36%, #a6e9cc12 57%, transparent 76%);
  opacity: calc(var(--journey-magic) * var(--magic-bloom, .55) * .52);
  transform: rotate(var(--magic-bed-turn, -8deg));
  transition: opacity 2.4s ease;
}
.journey-magic-plant--bridge { --magic-bloom: var(--magic-bridge-bloom); }
.journey-magic-plant--garden {
  --magic-bloom: var(--magic-garden-bloom);
  background: radial-gradient(ellipse at 50% 65%, #ffed9d80, #97e5ce3d 37%, #bcecd515 58%, transparent 76%);
}
.journey-magic-plant--verge {
  --magic-bloom: .4;
  background: radial-gradient(ellipse at 50% 70%, #b6f0de73, #74d2d02b 39%, transparent 74%);
}

/* The flowers themselves gather light deeper in the shared world. */
#scene-camera .discovery-thicket::after {
  content: "";
  position: absolute;
  inset: 20% -18% -12%;
  z-index: 0;
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 65%, #8df9d85c, #72ccde29 42%, transparent 70%);
  opacity: calc(var(--journey-magic) * .85);
  filter: blur(9px);
  pointer-events: none !important;
  transition: opacity 1.45s ease;
}
#scene-camera .thicket-branch > i {
  filter: brightness(calc(1 + var(--journey-magic) * .14))
    drop-shadow(0 0 calc(var(--journey-magic) * 8px) #a8ffe0);
}
#scene-camera .thicket-gnome::after {
  background: radial-gradient(ellipse at 50% 65%, #a4fce789, #c1f49e44 42%, transparent 72%);
}
#journey-app[data-motion="still"] .discovery-thicket::after { transition: none !important; }
@media (prefers-reduced-motion: reduce) { .discovery-thicket::after { transition: none !important; } }

/* Only position drifts; luminosity stays steady with no flashing or pulsing. */
@keyframes journey-magic-drift {
  from { transform: translate3d(-2px, 2px, 0); }
  to { transform: translate3d(4px, -7px, 3px); }
}

@media (max-width: 600px) {
  .journey-magic-light--optional { display: none; }
  .journey-magic-light { --magic-strength: .58; }
  .journey-magic-plant {
    width: min(var(--magic-bed-width, 140px), 95px);
    height: min(var(--magic-bed-height, 52px), 37px);
    opacity: calc(var(--journey-magic) * var(--magic-bloom, .55) * .34);
  }
}

/* Keep the location-based static glow while removing decorative movement. */
#journey-app[data-motion="still"] .journey-magic-light {
  animation: none !important;
  transform: none !important;
  transition: none !important;
}
#journey-app[data-motion="still"] .journey-magic-plant { transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  .journey-magic-light {
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }
  .journey-magic-plant { transition: none !important; }
}

/* patio-v10.3.css */
/* Patio and fence door belong to the shared camera world. */
:root{--village-scene:url('assets/patio-v10.3/patio-v10.3-inked.webp')}
#journey-viewport[data-stop=glade] .village-gate{visibility:visible;opacity:1;transform:translateZ(-65px);pointer-events:auto}
#scene-camera .village-gate{left:calc(54% - 175px);bottom:44%;width:350px;height:155px;cursor:pointer;filter:drop-shadow(0 9px 5px #24382b80);outline-offset:5px}
#scene-camera .village-gate .gate-post{display:none}
#scene-camera .village-gate .gate-left{left:0;right:0;width:auto;height:134px;bottom:0;gap:5px;transform-origin:left center}
#scene-camera .village-gate .gate-left i{border-radius:0;clip-path:polygon(50% 0,100% 9%,100% 100%,0 100%,0 9%);background:linear-gradient(90deg,#b5ad90,#fffae4 35%,#fff2cf 75%,#baaf8d)}
#scene-camera .village-gate .gate-left:before{top:31px;height:13px;background:linear-gradient(#fff8dd,#cabd98)}
#scene-camera .village-gate .gate-left:after{top:83px;height:13px;background:linear-gradient(#fff8dd,#cabd98)}
#scene-camera .village-gate .gate-right{display:none}
#scene-camera .village-gate .garden-gate-touch{position:absolute;z-index:4;left:19%;top:0;width:62%;height:82px;min-height:54px;border:0;border-radius:5px;padding:0;background:transparent;cursor:pointer;pointer-events:auto!important}
#scene-camera .village-gate .garden-gate-touch:focus-visible{outline:3px dashed #ffe791;outline-offset:4px;background:#ffe9a51a}
#scene-camera .village-gate .gate-invitation{left:72%;top:65px;min-width:22px;width:26px;height:12px;padding:0;font-size:0;background:linear-gradient(#7f6b4e,#322f2b);border:1px solid #eee0ad;border-radius:4px;box-shadow:0 2px 2px #4b4338;opacity:1;pointer-events:none}
#scene-camera .village-gate:hover .gate-invitation,#scene-camera .village-gate:focus-visible .gate-invitation{background:#e3ad50;box-shadow:0 0 12px #ffedb6}
#journey-viewport[data-gate=open] .village-gate .gate-invitation{opacity:0}
#journey-viewport[data-stop=gate] .village-gate{visibility:visible;opacity:1;transform:translateZ(-70px) scale(1.1)}
#journey-viewport[data-stop=glade] .village-friends>.world-friend{bottom:29%;height:205px;width:190px}
#journey-viewport[data-stop=glade] .friend-kitten{left:22%}
#journey-viewport[data-stop=glade] .friend-puppy{right:21%;width:200px}
#journey-viewport[data-stop=glade] .play-leaf{bottom:37%}
@media(min-width:601px) and (max-width:1050px){
 #scene-camera .village-gate{width:310px;height:140px;left:calc(54% - 155px)}
 #scene-camera .village-gate .gate-left{height:120px}
 #journey-viewport[data-stop=glade] .village-friends>.world-friend{bottom:31%;height:175px;width:155px}
 #journey-viewport[data-stop=glade] .friend-kitten{left:18%}
 #journey-viewport[data-stop=glade] .friend-puppy{right:15%;width:165px}
}
@media(max-width:600px){
 #scene-camera .village-gate{width:min(calc(100vw - 50px),40svh);height:105px;left:54%;translate:-50% 0;bottom:48%}
 #scene-camera .village-gate .gate-left{left:0;right:0;height:95px;gap:4px;bottom:0}
 #scene-camera .village-gate .gate-left:before{top:26px;height:10px}
 #scene-camera .village-gate .gate-left:after{top:64px;height:10px}
 #scene-camera .village-gate .gate-invitation{top:53px;width:21px;height:10px}
 #scene-camera .village-gate .garden-gate-touch{height:58px}
 #journey-viewport[data-stop=glade] .village-friends>.world-friend{bottom:38%;height:140px;width:130px}
 #journey-viewport[data-stop=glade] .friend-kitten{left:13%}
 #journey-viewport[data-stop=glade] .friend-puppy{right:10%;width:138px}
}
@media(max-width:350px){
 #journey-viewport[data-stop=glade] .village-friends>.friend-kitten{left:8%;width:110px;height:110px;bottom:37%}
 #journey-viewport[data-stop=glade] .village-friends>.friend-puppy{right:7%;width:116px;height:110px;bottom:37%}
 #journey-viewport[data-stop=glade] .world-friend>span{display:none}
}

/* village-map-v10.3.css */
/* A real folded map replaces the bottom-left text pill. Load after journey CSS. */
.journey-map.village-map{left:18px;bottom:18px;z-index:58;max-width:none;color:#4a3148}
.journey-map.village-map>summary{width:104px;height:78px;min-height:44px;display:block;padding:0;background:none;border:0;border-radius:6px;list-style:none;filter:drop-shadow(0 5px 3px #142c29aa);transform:rotate(-5deg);transform-origin:25% 80%;transition:transform .2s ease,filter .2s ease;position:relative}
.journey-map.village-map>summary::-webkit-details-marker{display:none}
.journey-map.village-map>summary::marker{content:""}
.village-map-mini{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.journey-map.village-map>summary:hover{transform:rotate(-2deg) translateY(-3px);filter:drop-shadow(0 8px 5px #142c29aa) brightness(1.05)}
.journey-map.village-map>summary:focus-visible{outline:3px solid #ffe78f;outline-offset:4px;background:#392b4580}
.journey-map.village-map[open]>summary{transform:rotate(0deg)}
.journey-map.village-map>.village-map-sheet{position:absolute;left:0;bottom:88px;width:min(430px,calc(100vw - 36px));max-height:calc(100svh - 122px);overflow:auto;display:block;padding:13px 14px 10px;border:2px solid #9c7648;border-radius:13px 7px 11px 8px;background:linear-gradient(105deg,#d8b57a,#fff0c1 7%,#fff4ce 53%,#f1daa5 95%,#bf985e);color:#493046;box-shadow:0 7px 0 #674b3680,0 16px 32px #142c2977,inset 0 2px 4px #fff9e3;isolation:isolate}
.village-map-heading{text-align:center;border-bottom:1px solid #ad8b5655;padding:0 0 8px;margin:0 0 5px}
.village-map-heading>span{font:800 8px/1.2 "Segoe UI",sans-serif;letter-spacing:.16em;color:#7f5b43}
.village-map-heading h2{font:400 23px/1.05 "Quest Display",sans-serif;letter-spacing:.01em;color:#51324d;margin:3px 0 0}
.village-map-landscape{height:280px;position:relative;min-width:0;border-radius:12px;overflow:hidden;background:linear-gradient(90deg,transparent 32.7%,#9b78452a 33%,#fff7d633 34%,transparent 34.5%,transparent 66%,#9b78452a 66.5%,#fff7d64d 67.5%,transparent 68%)}
.village-map-landscape>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.journey-map.village-map .village-map-stop{position:absolute;display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;min-width:0;padding:6px 7px;border:1px solid #b2915d;border-radius:7px 10px 8px 6px;background:#fff0c4f2;color:#4a3148;text-align:center;font:400 13px/1.05 "Quest Display",sans-serif;box-shadow:0 2px 0 #99744677;cursor:pointer;white-space:normal}
.map-stop-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:#8f6272;border:1px solid #5f3e54;box-shadow:0 0 0 2px #fff4d4}
.journey-map.village-map .village-map-stop:hover{background:#fff8dc;border-color:#674663}
.journey-map.village-map .village-map-stop:focus-visible{outline:3px solid #79527b;outline-offset:3px;z-index:2}
.journey-map.village-map .village-map-stop[aria-current=step]{background:#67415f;color:#fff2c3;border-color:#4c2e4c;box-shadow:0 3px 0 #39263f}
.journey-map.village-map .village-map-stop[aria-current=step] .map-stop-dot{background:#f8d969;border-color:#f8d969;box-shadow:0 0 0 2px #997457}
.village-map-stop.map-stop-glade{left:2%;bottom:2%;width:33%}
.village-map-stop.map-stop-gate{left:38%;bottom:18%;width:29%}
.village-map-stop.map-stop-trail{right:2%;top:51%;width:30%}
.village-map-stop.map-stop-fork{left:36%;top:29%;width:28%}
.village-map-stop.map-stop-bridge{left:2%;top:6%;width:39%}
.village-map-stop.map-stop-garden{right:2%;top:6%;width:39%}
.village-map-instruction{margin:7px 3px 0;text-align:center;font:11px/1.35 "Segoe UI",sans-serif;color:#785841}
#journey-viewport[data-stop=glade] .village-map-mini [data-map-stop=glade],
#journey-viewport[data-stop=gate] .village-map-mini [data-map-stop=gate],
#journey-viewport[data-stop=trail] .village-map-mini [data-map-stop=trail],
#journey-viewport[data-stop=fork] .village-map-mini [data-map-stop=fork],
#journey-viewport[data-stop=bridge] .village-map-mini [data-map-stop=bridge],
#journey-viewport[data-stop=garden] .village-map-mini [data-map-stop=garden]{fill:#f8dc57;stroke:#57324f;stroke-width:2.5}
@media(min-width:601px) and (max-width:1050px){.journey-map.village-map{left:10px;bottom:3px}.journey-map.village-map>summary{width:64px;height:48px}.journey-map.village-map>.village-map-sheet{bottom:60px;max-height:calc(100svh - 88px)}}
@media(max-width:600px){.journey-map.village-map{left:12px;bottom:8px}.journey-map.village-map>summary{width:82px;height:62px}.journey-map.village-map>.village-map-sheet{bottom:73px;width:min(350px,calc(100vw - 24px));max-height:calc(100svh - 102px);padding:11px 10px 9px}.village-map-heading h2{font-size:21px}.village-map-landscape{height:274px}.journey-map.village-map .village-map-stop{font-size:12px;min-height:44px;padding:6px 4px;gap:4px}.village-map-instruction{font-size:10px}}
@media(max-height:550px){.journey-map.village-map>.village-map-sheet{max-height:calc(100svh - 96px)}.village-map-landscape{height:260px}}
#journey-app[data-motion=still] .journey-map.village-map>summary{transition:none}
@media(prefers-reduced-motion:reduce){.journey-map.village-map>summary{transition:none}}

/* browse-signs-v10.4.css */
/* Clear, inviting workbook signposts; scenery stays open to exploration. */
.journey-header{gap:24px;align-items:flex-start;background:linear-gradient(#16312c99,transparent 96%)}
.workbook-directions{width:min(650px,60%);pointer-events:none}
.browse-intro{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:38px;margin:-8px 3px 7px}
.browse-intro p{margin:0;color:#fff2c3;font:400 15px/1.1 "Quest Display",sans-serif;letter-spacing:.035em;text-shadow:0 2px 0 #36253c,0 1px 7px #172d25}
.journey-header .header-motion{font:600 10px/1.1 "Segoe UI",sans-serif;min-height:32px;min-width:96px;padding:7px 12px;background:#253735e8;color:#fff0c3;border:1px solid #dbca91;border-radius:18px;box-shadow:0 2px 0 #14221e;pointer-events:auto}
.journey-header .header-motion[aria-pressed=true]{background:#e5d2a3;color:#3c2b42}
.journey-header nav.workbook-signs{display:grid;grid-template-columns:1.15fr 1.1fr .95fr;gap:13px;max-width:none;width:100%;align-items:stretch;justify-content:normal}
.journey-header nav.workbook-signs .workbook-sign{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-width:0;min-height:64px;padding:11px 14px;color:#3d2348;border:2px solid #58344b;border-radius:9px 13px 9px 12px;background:linear-gradient(110deg,#ffe47c,#ffd34b 72%,#efb539);font:400 20px/1.05 "Quest Display",sans-serif;text-shadow:0 1px 0 #fff4b9;box-shadow:0 4px 0 #765037,0 8px 12px #12281d66;rotate:-.8deg;transition:translate .18s ease,rotate .18s ease,box-shadow .18s ease;pointer-events:auto;cursor:pointer}
.journey-header nav.workbook-signs .sign-level{background:linear-gradient(110deg,#d9f5d8,#8bdfd7 78%,#5fc4c5);text-shadow:0 1px 0 #f2fff0;rotate:.7deg;box-shadow:0 4px 0 #41695e,0 8px 12px #12281d66}
.journey-header nav.workbook-signs .sign-notes{background:linear-gradient(110deg,#fff0d1,#ffd5bc 78%,#f1b5ad);text-shadow:0 1px 0 #fff6e4;rotate:-.4deg;box-shadow:0 4px 0 #85555b,0 8px 12px #12281d66}
.workbook-sign:before{content:"";position:absolute;inset:4px;border:1px solid #fff6ce9c;border-radius:5px 9px 5px 8px;pointer-events:none}
.workbook-sign svg{width:32px;height:32px;flex:0 0 32px;pointer-events:none;filter:drop-shadow(0 1px 0 #ffffff88)}
.workbook-sign span{pointer-events:none}
.journey-header nav.workbook-signs .workbook-sign:hover{translate:0 -3px;rotate:0deg;box-shadow:0 6px 0 #65432f,0 10px 15px #12281d70}
.journey-header nav.workbook-signs .workbook-sign:active{translate:0 2px;box-shadow:0 2px 0 #65432f}
.journey-header nav.workbook-signs .workbook-sign:focus-visible{outline:3px solid #33203f;outline-offset:4px;box-shadow:0 0 0 7px #fff7d6,0 6px 0 #65432f}
@media(min-width:601px) and (max-width:1050px){
 .journey-header{padding:12px 16px;gap:14px}.journey-brand{width:245px;flex:0 0 245px}
 .workbook-directions{width:calc(100% - 259px)}.browse-intro{margin:-5px 2px 6px;gap:6px;min-height:35px}.browse-intro p{font-size:12px}
 .journey-header .header-motion{min-width:80px;font-size:8px;padding:7px 8px;min-height:32px}
 .journey-header nav.workbook-signs{gap:8px;grid-template-columns:1fr 1fr .94fr}
 .journey-header nav.workbook-signs .workbook-sign{font-size:15px;padding:9px 7px;gap:5px;min-height:60px}
 .workbook-sign svg{width:23px;height:23px;flex-basis:23px}
}
@media(max-width:600px){
 .journey-header{padding:9px 12px;gap:5px;min-height:0;align-items:center}
 .journey-brand{width:270px;max-width:92vw;flex:none}
 .workbook-directions{width:100%;max-width:430px}
 .browse-intro{margin:0 3px 5px;min-height:36px;gap:8px}.browse-intro p{font-size:12px;letter-spacing:.015em}
 .journey-header .header-motion{font-size:9px;min-width:92px;min-height:36px;padding:7px 9px}
 .journey-header nav.workbook-signs{grid-template-columns:1fr 1fr .92fr;gap:9px}
 .journey-header nav.workbook-signs .workbook-sign{display:flex;flex-direction:column;gap:3px;min-height:66px;padding:8px 5px;font-size:15px;line-height:1.05;box-shadow:0 3px 0 #765037,0 5px 8px #12281d66}
 .workbook-sign svg{width:24px;height:24px;flex-basis:24px}.workbook-sign span{max-width:110px}
 #journey-app:not([data-view=scene]) .journey-header{min-height:0}
}
@media(max-width:350px){.journey-header nav.workbook-signs .workbook-sign{font-size:14px;min-height:66px}.browse-intro p{font-size:11px}.journey-header .header-motion{font-size:8px;min-width:88px}}
.journey-header .browse-intro .header-motion{min-height:44px}
.browse-intro{min-height:44px}
.workbook-directions{position:relative}
.journey-header .workbook-directions>.header-motion{position:absolute;right:3px;top:-8px;min-height:44px}
@media(max-width:600px){
 #journey-app[data-view=scene] .browse-intro{min-height:18px}
 #journey-app[data-view=scene] .workbook-directions>.header-motion{position:fixed;top:auto;right:78px;bottom:14px;min-height:44px;box-shadow:0 3px 0 #14221e}
}

/* park-world-v10.5.css */
/* A single shared roadside set. Camera travel changes perspective, not scenery identity. */
.park-world {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  pointer-events: none !important;
  user-select: none;
  --park-left-depth: -175px;
  --park-right-depth: -215px;
  --park-lamp-depth: -435px;
}
.park-world *, .park-world *::before, .park-world *::after { pointer-events: none !important; }
.park-world-layer { position: absolute; transform-style: preserve-3d; }
.park-verge {
  bottom: -28svh;
  width: 225svh;
  height: 150svh;
  transform-origin: center bottom;
}
.park-verge img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center bottom;
  /* The source contains soil/contact shadows; no floating sticker shadow. */
}
.park-verge-left { left: -40svh; transform: translateZ(var(--park-left-depth)); }
.park-verge-right { right: -40svh; transform: translateZ(var(--park-right-depth)); }
.park-path-lamp {
  left: 74%;
  bottom: 38%;
  width: 52px;
  height: 160px;
  transform: translateZ(var(--park-lamp-depth));
  transform-origin: center bottom;
}
.park-path-lamp svg { display: block; width: 100%; height: 100%; overflow: visible; }
.park-lamp-glass { filter: drop-shadow(0 0 calc(var(--journey-magic, 0) * 5px) #c9f2c7); }
@media (min-width: 601px) and (max-width: 1050px) {
  .park-verge-left { left: -48svh; }
  .park-verge-right { right: -48svh; }
  .park-path-lamp { width: 46px; height: 145px; }
}
@media (max-width: 600px) {
  .park-world { --park-left-depth: -175px; --park-right-depth: -205px; --park-lamp-depth: -350px; }
  .park-verge-left { left: -65svh; }
  .park-verge-right { right: -65svh; }
  .park-path-lamp { left: 77%; bottom: 40%; width: 40px; height: 126px; }
}
/* All scenery stays attached to the same world when motion is paused. */
#journey-app[data-motion="still"] .park-world *,
#journey-app[data-motion="still"] .park-world *::before,
#journey-app[data-motion="still"] .park-world *::after { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) { .park-world *, .park-world *::before, .park-world *::after { animation: none !important; transition: none !important; } }

/* park-habitats-v10.5.css */
/* Stems, soil and perches share each friend's fixed world coordinates. */
.foreground-arch,.foreground-flowers{display:none!important}
.discovery-thicket{--habitat-hedge:url('assets/park-v10.5/park-ground-hedge.webp')}
.discovery-thicket>.habitat-soil{display:block;position:absolute;z-index:0;left:-38%;width:176%;height:10%;bottom:-7%;border:1px solid #66533d;border-radius:2px 3px 4px 4px;background:repeating-linear-gradient(2deg,transparent 0 4px,#65553c25 5px,transparent 6px 9px),linear-gradient(#c1aa77,#b49b68 20%,#9d8356 25%,#a99062 78%,#796545);box-shadow:inset 0 2px #e5d1a055,0 7px 5px #2e452d38;pointer-events:none}
.discovery-thicket>.habitat-soil:before,.discovery-thicket>.habitat-soil:after{content:"";position:absolute;width:3px;height:3px;top:40%;left:4%;border-radius:50%;background:#62523b;box-shadow:0 1px #dcc28a}
.discovery-thicket>.habitat-soil:after{left:auto;right:4%}
.discovery-thicket>.thicket-branch{position:absolute;display:block;z-index:3;top:auto;left:-55%;right:auto;bottom:-12%;width:210%;height:auto;aspect-ratio:3/2;transform-origin:50% 89%;rotate:0deg;scale:1;opacity:1!important;filter:none;transition:none!important;will-change:transform;pointer-events:none!important}
.discovery-thicket>.thicket-branch>i{position:absolute;inset:0;display:block;background:var(--habitat-hedge) center/100% 100% no-repeat;rotate:0deg;scale:1;filter:none}
.thicket-badger>.thicket-branch>i,.thicket-raven>.thicket-branch>i{scale:-1 1}
.thicket-badger>.thicket-branch{bottom:-22%}
.discovery-thicket.is-focused>.thicket-branch,.discovery-thicket.discovered>.thicket-branch{opacity:1!important}
.discovery-thicket>.world-friend{filter:none}
.discovery-thicket>.world-friend:before{display:none}
.discovery-thicket:not(.is-near):not(.is-focused):not(.discovered) .world-friend img{filter:none}
.discovery-thicket>.habitat-perch{display:none}
/* The birds stand on timber emerging from a planted verge, never in midair. */
.thicket-owl>.habitat-perch,.thicket-raven>.habitat-perch{display:block;position:absolute;z-index:0;left:43%;width:14%;height:35%;top:91%;border:1px solid #5b4937;border-radius:8px 5px 1px 1px;background:linear-gradient(90deg,#72513b,#c1a16a 45%,#8d6d45 70%,#594a38);box-shadow:inset 2px 0 #d2b47b55;transform:rotate(-3deg);transform-origin:center bottom}
.thicket-owl>.habitat-perch:before,.thicket-raven>.habitat-perch:before{content:"";position:absolute;top:-7%;left:-180%;width:460%;height:12%;border:1px solid #54432f;border-radius:6px;background:linear-gradient(#c6a778,#806244);rotate:-2deg}
.thicket-raven>.habitat-perch{rotate:5deg}
.thicket-owl>.habitat-soil,.thicket-raven>.habitat-soil{bottom:-30%;height:10%;left:-30%;width:160%}
.thicket-owl>.thicket-branch,.thicket-raven>.thicket-branch{bottom:-35%;width:200%;left:-50%;}
.thicket-owl>.thicket-branch>i,.thicket-raven>.thicket-branch>i{background-image:var(--habitat-hedge)}
.thicket-owl>.world-friend img,.thicket-raven>.world-friend img{object-position:center 94%}
/* The ground fixes the base while the spring only bends the upper plant. */
.discovery-thicket>[data-discovery-caption]{bottom:-26px;max-width:170px}
.thicket-owl>[data-discovery-caption],.thicket-raven>[data-discovery-caption]{bottom:auto;top:-28px}
.thicket-troll>.thicket-branch{width:195%;left:-47.5%;bottom:-10%}
.thicket-gnome>.thicket-branch{width:210%;left:-55%;bottom:-12%}
.thicket-troll,.thicket-gnome{bottom:40%}
@media(max-width:600px){
 .thicket-troll,.thicket-gnome{bottom:40%}
 #scene-camera .village-gate .garden-gate-touch{top:-8px;height:48px;min-height:48px}
 .discovery-thicket>[data-discovery-caption]{max-width:125px;font-size:11px}
 .thicket-owl>.thicket-branch,.thicket-raven>.thicket-branch{width:200%;left:-50%;bottom:-35%}
}

/* character-life-v10.6.css */
/* Native controls remain still; each body moves inside its own terrain patch. */
.world-friend{--actor-body-width:90%;--actor-body-height:92%}
.world-friend>.actor-body{position:absolute;left:calc((100% - var(--actor-body-width))/2);bottom:0;width:var(--actor-body-width);height:var(--actor-body-height);transform:translate3d(var(--actor-x,0px),var(--actor-y,0px),0) rotate(var(--actor-lean,0deg));transform-origin:50% 97%;pointer-events:none!important;will-change:transform}
.world-friend>.actor-body>img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;scale:var(--actor-facing,1) 1;transform-origin:50% 94%;transition:none;pointer-events:none!important}
.world-friend:before{display:none!important}
.actor-body:before{content:"";position:absolute;left:20%;right:20%;bottom:1px;height:9px;border-radius:50%;background:#243d2d38;filter:blur(3px);transform:translateY(calc(-1 * var(--actor-y,0px))) rotate(calc(-1 * var(--actor-lean,0deg)));pointer-events:none}
.village-friends>.world-friend{animation:none!important;rotate:0deg;translate:none!important}
#journey-viewport[data-stop=glade] .village-friends>.world-friend{width:300px;--actor-body-width:190px;--actor-body-height:195px}
#journey-viewport[data-stop=glade] .village-friends>.friend-kitten{left:calc(22% - 110px)}
#journey-viewport[data-stop=glade] .village-friends>.friend-puppy{right:calc(21% - 100px)}
.discovery-thicket>.world-friend{left:-12%;width:124%;--actor-body-width:80.645%;--actor-body-height:92%}
.thicket-owl .actor-body:before,.thicket-raven .actor-body:before{height:3px;left:34%;right:34%;filter:blur(1px)}
.thicket-owl .actor-body>img,.thicket-raven .actor-body>img{object-position:center 94%}
@media(min-width:601px) and (max-width:1050px){
 #journey-viewport[data-stop=glade] .village-friends>.world-friend{width:230px;--actor-body-width:155px;--actor-body-height:165px}
 #journey-viewport[data-stop=glade] .village-friends>.friend-kitten{left:calc(18% - 75px)}
 #journey-viewport[data-stop=glade] .village-friends>.friend-puppy{right:calc(15% - 75px)}
}
@media(max-width:600px){
 #journey-viewport[data-stop=glade] .village-friends>.world-friend{width:164px;--actor-body-width:130px;--actor-body-height:130px}
 #journey-viewport[data-stop=glade] .village-friends>.friend-kitten{left:calc(13% - 34px)}
 #journey-viewport[data-stop=glade] .village-friends>.friend-puppy{right:calc(10% - 34px)}
}
@media(max-width:350px){
 #journey-viewport[data-stop=glade] .village-friends>.world-friend{width:138px;--actor-body-width:110px;--actor-body-height:102px}
 #journey-viewport[data-stop=glade] .village-friends>.friend-kitten{left:4%}
 #journey-viewport[data-stop=glade] .village-friends>.friend-puppy{right:4%}
 .village-friends .actor-body>span{display:none}
}
#journey-app[data-motion=still] .actor-body,#journey-app[data-motion=still] .actor-body>img{transition:none!important;will-change:auto}
@media(prefers-reduced-motion:reduce){.actor-body,.actor-body>img{transition:none!important;will-change:auto}}

/* character-still-v12.19.css */
/* The characters stay planted. Wind and deliberate habitat reveals are separate. */
#journey-viewport .village-friends>.world-friend{animation:none!important;transition:none!important}
#journey-viewport .village-friends>.world-friend>.actor-body{--actor-x:0px;--actor-y:0px;--actor-lean:0deg;transform:none!important;translate:none!important;rotate:0deg!important;animation:none!important;transition:none!important;will-change:auto}
#journey-viewport .village-friends>.friend-kitten>.actor-body{--actor-facing:1}
#journey-viewport .village-friends>.friend-puppy>.actor-body{--actor-facing:-1}
#journey-viewport .village-friends>.world-friend>.actor-body>img{animation:none!important;transition:none!important;will-change:auto}
#journey-viewport .village-friends>.world-friend>.actor-body:before{transform:none!important;animation:none!important;transition:none!important}
#character-help-request-v1219{padding:10px 12px;border-left:3px solid #9c6b37;border-radius:4px;background:#f5dda6;color:#492c44;font:600 .875rem/1.45 "Segoe UI",Arial,sans-serif}
#character-help-invitation-v1219{margin:0 0 15px;padding:0 0 12px;border-bottom:1px solid #a584565e}
#character-help-invitation-v1219 .help-quest-choices{margin-bottom:0}
#character-current-collection-v1219{font:700 .6875rem/1.3 "Segoe UI",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#755743;margin:0 0 4px}

/* motion-interactions-v12.20.css */
/* These optional light loops keep their phase while offscreen or in transit.
   Environment wind and all deliberate character/cover reveals retain their rules. */
#journey-app:not([data-view="scene"]) :is(.hub-magic-fleck,.trail-glimmer,.scenery-magic-mote),
#journey-app[data-document-hidden-v1220="true"] :is(.hub-magic-fleck,.trail-glimmer,.scenery-magic-mote),
#journey-viewport:is([data-transit],[data-entry-building],[data-camera-moving-v1220="true"]) :is(.hub-magic-fleck,.trail-glimmer,.scenery-magic-mote),
#hub-world-v127[aria-hidden="true"] .hub-magic-fleck,
#journey-viewport:not(:is([data-stop="trail"],[data-stop="fork"],[data-stop="bridge"],[data-stop="garden"])) :is(.trail-glimmer,.scenery-magic-mote){animation-play-state:paused!important}
#journey-app:not([data-view="scene"]) .scenery-magic-mote::after,
#journey-app[data-document-hidden-v1220="true"] .scenery-magic-mote::after,
#journey-viewport:is([data-transit],[data-entry-building],[data-camera-moving-v1220="true"]) .scenery-magic-mote::after,
#journey-viewport:not(:is([data-stop="trail"],[data-stop="fork"],[data-stop="bridge"],[data-stop="garden"])) .scenery-magic-mote::after{animation-play-state:paused!important}

/* trail-world-v11.css */
/* One continuous outdoor coordinate system: the camera passes the village. */
#journey-viewport{--world-u:50%;--world-v:63%;--trail-magic:0;--cam-x:0px;--cam-y:0px;--cam-z:-90px;--cam-yaw:0deg;--cam-tilt:0deg}
#journey-viewport{background:#213d2d url('assets/trail-v11/trail-panorama-v11.webp') center/cover no-repeat}
#journey-viewport #scene-camera{transition:transform 2.2s cubic-bezier(.2,.64,.13,1)}
#journey-viewport[data-stop=trail]{--cam-z:1650px;--cam-y:0px;--cam-x:0px;--cam-yaw:0deg;--cam-tilt:0deg;--trail-magic:.07}
#journey-viewport[data-stop=fork]{--cam-z:1950px;--cam-y:0px;--cam-x:0px;--cam-yaw:0deg;--cam-tilt:0deg;--trail-magic:.58}
#journey-viewport:is([data-stop=bridge],[data-stop=garden]){--cam-z:2250px;--cam-y:0px;--cam-x:0px;--cam-yaw:0deg;--cam-tilt:0deg;--trail-magic:1}
.scenery-glade,.park-world{transition:opacity 1.7s ease,visibility 0s 1.7s}
#journey-viewport:not([data-stop=glade]) .scenery-glade,#journey-viewport:not([data-stop=glade]) .park-world{opacity:0;visibility:hidden}
#journey-viewport[data-stop=glade] .scenery-glade,#journey-viewport[data-stop=glade] .park-world{opacity:1;visibility:visible;transition:opacity 1.7s ease,visibility 0s}
.outside-world{--world-w:max(150vw,225svh);--world-h:calc(var(--world-w)*2/3);position:absolute;left:50%;top:45%;width:var(--world-w);height:var(--world-h);transform:translate3d(calc(-1*var(--world-u)),calc(-1*var(--world-v)),-1900px);transform-style:preserve-3d;transition:transform 2.2s cubic-bezier(.2,.64,.13,1);pointer-events:none!important}
.outside-world>.trail-plate{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:fill;pointer-events:none;opacity:1;transition:opacity 1.6s}
#journey-viewport[data-stop=glade] .outside-world>.trail-plate,#journey-viewport[data-stop=glade] .outside-world>.trail-foreground,#journey-viewport[data-stop=glade] .trail-atmosphere{opacity:0}
.outside-world>.trail-friends,.outside-world>.fork-friends,.outside-world>.destination-friends{position:absolute;inset:0;transform:none;transition:opacity .5s}
.outside-world .discovery-thicket{left:calc(var(--habitat-x)*100%);top:calc(var(--habitat-y)*100%);right:auto;bottom:auto;width:calc(var(--habitat-w)*100%);height:calc(var(--habitat-h)*100%);transform:none;isolation:isolate;transform-style:flat}
.outside-world .discovery-thicket>.world-friend{inset:0;width:100%;height:100%;min-width:0;min-height:0;left:0;top:0;transform:none;rotate:0deg;--actor-body-width:92%;--actor-body-height:96%;filter:none}
.outside-world .thicket-gnome .actor-body>img{object-position:center top}
.outside-world .thicket-gnome .actor-body>img{translate:-8% 6%;transition:translate .35s ease}
.outside-world .thicket-troll .actor-body>img{translate:-8% 6%;transition:translate .35s ease}
#outside-world .thicket-gnome>.thicket-branch{bottom:54%;width:110%;left:-5%}
#outside-world .thicket-troll>.thicket-branch{bottom:54%;width:120%;left:-10%}
.outside-world .thicket-gnome>.thicket-branch>i,.outside-world .thicket-troll>.thicket-branch>i{mask-image:linear-gradient(#000 0 68%,#0009 82%,transparent)}
.outside-world .discovery-thicket:is(.is-near,.is-focused,.discovered) .actor-body>img{translate:0 0}
.outside-world .thicket-owl .actor-body>img,.outside-world .thicket-raven .actor-body>img{object-position:center bottom}
.outside-world .thicket-owl .actor-body>img{translate:-7% 5%;transition:translate .35s ease}
.outside-world .thicket-raven .actor-body>img{translate:6% 5%;transition:translate .35s ease}
.outside-world .actor-body:before{display:none}
.natural-habitat-cover{position:absolute;z-index:2;left:calc(-1*var(--habitat-x)*var(--world-w));top:calc(-1*var(--habitat-y)*var(--world-h));width:var(--world-w);height:var(--world-h);background:url('assets/trail-v11/trail-panorama-v11.webp') 0 0/100% 100% no-repeat;clip-path:var(--habitat-clip);pointer-events:none!important}
.outside-world .discovery-thicket>.thicket-branch{z-index:3;left:-20%;right:auto;top:auto;bottom:-8%;width:140%;height:auto;aspect-ratio:3/2;transform-origin:48% 91%;opacity:1!important;filter:none}
.outside-world .discovery-thicket>.thicket-branch>i{background:url('assets/trail-v11/fern-fringe-v11.webp') center/100% 100% no-repeat;rotate:0deg;scale:1;filter:none}
.outside-world .thicket-raven>.thicket-branch>i,.outside-world .thicket-badger>.thicket-branch>i{scale:-1 1}
.outside-world .thicket-owl>.thicket-branch{bottom:44%;width:100%;left:0}
.outside-world .thicket-raven>.thicket-branch{bottom:48%;width:100%;left:0}
.outside-world .thicket-owl>.thicket-branch>i,.outside-world .thicket-raven>.thicket-branch>i{mask-image:linear-gradient(#000 0 72%,#0009 85%,transparent)}
#outside-world .thicket-owl>.thicket-branch,#outside-world .thicket-raven>.thicket-branch,#outside-world .thicket-troll>.thicket-branch,#outside-world .thicket-gnome>.thicket-branch{display:none!important}
.outside-world .discovery-thicket:after{display:none}
#outside-world .thicket-owl:after,#outside-world .thicket-raven:after,#outside-world .thicket-troll:after,#outside-world .thicket-gnome:after{content:"";display:block;position:absolute;inset:auto;left:12%;top:3%;width:76%;height:48%;border-radius:50%;background:radial-gradient(ellipse,#c0fff548,#82cfe938 40%,transparent 72%);opacity:calc(var(--trail-magic)*.72);filter:blur(4px);mix-blend-mode:screen;z-index:4;pointer-events:none!important;transition:opacity 1.5s}
#outside-world .thicket-raven:after{background:radial-gradient(ellipse,#d1c6ff66,#81dff53d 44%,transparent 74%)}
#outside-world .thicket-gnome:after{background:radial-gradient(ellipse,#fff2af66,#a0f4d455 44%,transparent 74%)}
.outside-world .discovery-thicket>[data-discovery-caption]{top:auto;bottom:-19px;font-size:10px;max-width:135px;padding:4px 7px;line-height:1.15;z-index:9}
.outside-world .discovery-thicket:focus-within:before{content:"";position:absolute;inset:-3px;border:2px dashed #ffe49b;border-radius:40%;z-index:8;pointer-events:none}
.outside-world .world-friend:focus-visible{outline:none}
.trail-foreground{position:absolute;width:26%;height:24%;background:url('assets/trail-v11/fern-fringe-v11.webp') center bottom/contain no-repeat;pointer-events:none;opacity:1;transition:opacity 1.6s;transform-origin:48% 91%;transform-style:preserve-3d}
.fern-left{left:1%;top:70%;transform:translateZ(160px) rotate(-8deg)}
.fern-right{right:-3%;top:72%;transform:translateZ(195px) scaleX(-1) rotate(-7deg)}
.trail-atmosphere{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none!important;opacity:1;transition:opacity 1.5s}
.trail-atmosphere:before{content:"";position:absolute;left:18%;top:25%;width:19%;height:16%;background:radial-gradient(ellipse,#91fae64a,#70d7ea26 40%,transparent 74%);filter:blur(8px);mix-blend-mode:screen;opacity:0;transition:opacity 1.8s;pointer-events:none;transform:translateZ(18px)}
#journey-viewport[data-stop=bridge] .trail-atmosphere:before{opacity:.8}
.trail-glimmer{position:absolute;left:var(--light-x);top:var(--light-y);width:5px;height:5px;border-radius:50%;background:#d6ffdc;box-shadow:0 0 5px 2px #9effe4,0 0 15px 8px #75e6da55;opacity:calc(var(--trail-magic)*.7);transform:translateZ(14px);animation:woodland-light-drift 17s var(--drift-delay) ease-in-out infinite alternate;pointer-events:none}
.glimmer-bridge{box-shadow:0 0 6px 2px #8cebe9,0 0 22px 12px #2bd6dc33;transform:translateZ(25px)}
.glimmer-garden{background:#fff1b4;box-shadow:0 0 7px 2px #fff1b4,0 0 25px 12px #a0f9de55;transform:translateZ(38px)}
@keyframes woodland-light-drift{from{translate:-3px 3px}to{translate:5px -8px}}
/* Clear wooden waymarkers stand beside the route rather than cover the birds. */
#journey-next.path-entry{left:58%;top:61%;bottom:auto;width:225px;height:auto;min-height:58px;border:2px solid #805a35;border-radius:5px 11px 7px 5px;padding:11px 21px 11px 14px;background:repeating-linear-gradient(2deg,transparent 0 6px,#92613518 7px,transparent 9px 13px),linear-gradient(100deg,#b88a4c,#f5d994 15%,#ebc780 90%,#b38a4e);color:#422a3d;font:400 19px/1.12 "Quest Display",sans-serif!important;box-shadow:0 4px 0 #715035,0 8px 10px #18352d55;isolation:isolate;translate:-50% 0;overflow:visible}
#journey-next.path-entry:before{content:"➜";position:absolute;left:auto;right:10px;top:50%;translate:0 -50%;width:auto;height:auto;rotate:0deg;background:none;border:0;box-shadow:none;opacity:1;color:#5f3d31;font-size:21px}
#journey-next.path-entry:after,#journey-next.path-entry:focus-visible:after{content:"";position:absolute;left:48%;top:calc(100% + 3px);bottom:auto;width:12px;height:82px;border:1px solid #6c523b;border-radius:0;background:linear-gradient(90deg,#765c3e,#c6a16b 45%,#8c6a44);translate:none;rotate:0deg;box-shadow:2px 3px 4px #243b2d44;opacity:1;z-index:-1;pointer-events:none;padding:0;max-width:none}
#journey-next.path-entry:hover{filter:brightness(1.07)}
#journey-next.path-entry:focus-visible{outline:3px dashed #ffebad;outline-offset:6px}
.journey-viewport>.fork-signs{position:absolute;display:grid;left:57%;top:59%;translate:-50% 0;gap:10px;width:225px;z-index:45;pointer-events:none;transform:none}
.journey-viewport>.fork-signs:before{content:"";position:absolute;top:18px;left:48%;width:13px;height:170px;background:linear-gradient(90deg,#725236,#ba925d,#805f40);border:1px solid #604a33;z-index:-1;pointer-events:none}
.journey-viewport>.fork-signs button{width:100%;min-width:0;min-height:49px;padding:9px 15px;font-size:18px;rotate:-3deg;pointer-events:auto!important}
.journey-viewport>.fork-signs button+button{rotate:3deg}
.journey-reading-dock>.journey-story{grid-row:2}
.trail-look-controls{display:none;grid-row:1;grid-template-columns:1fr 1.1fr 1fr;gap:7px;pointer-events:none}
.trail-look-controls>button{min-height:44px;padding:6px 8px;border:1px solid #917348;border-radius:8px 11px;background:#fff0cce8;color:#493448;font:400 13px "Quest Display",sans-serif;pointer-events:auto;box-shadow:0 3px 0 #70503b55}
.trail-look-controls>button[aria-pressed=true]{background:#63475c;color:#fff0bd}
.world-workbook-finds{position:absolute;inset:0;pointer-events:none!important}
.world-workbook-finds>.workbook-find{position:absolute;z-index:7;left:var(--find-left);top:var(--find-top);width:55px;height:48px;min-width:44px;min-height:44px;padding:0;border:0;background:none;pointer-events:auto!important;rotate:var(--find-angle);cursor:pointer}
.world-workbook-finds>.workbook-find-trail{--find-left:34%;--find-top:67%}
.world-workbook-finds>.workbook-find-woods{--find-left:47%;--find-top:27%}
.workbook-find:after{content:"";position:absolute;left:-28%;bottom:-10%;width:150%;height:110%;background:url('assets/trail-v11/fern-fringe-v11.webp') center bottom/contain no-repeat;transform-origin:48% 91%;transition:rotate .4s;rotate:0deg;pointer-events:none}
.workbook-find.is-near:after,.workbook-find:focus-visible:after,.workbook-find.is-peeked:after{rotate:-14deg}
.workbook-find.is-found:after{rotate:-19deg}
.patio-discoveries>.workbook-find-patio{--find-left:78%;--find-top:73%}
.workbook-pouch{--discovery-pouch-left:134px}
.village-map-stop.map-stop-trail{right:5%;top:54%;width:32%}
.village-map-stop.map-stop-fork{left:32%;top:30%;width:39%}
#outside-world>#journey-next{left:52%;top:62%;bottom:auto;width:225px;min-height:62px;padding-right:34px;font-size:20px!important;z-index:9;translate:-50% 0}
#outside-world>#fork-signs{position:absolute;display:grid;left:55%;top:27.5%;translate:-50% 0;gap:10px;width:205px;z-index:9;pointer-events:none;transform:none}
#outside-world>#fork-signs:before{content:"";position:absolute;top:18px;left:48%;width:13px;height:170px;background:linear-gradient(90deg,#725236,#ba925d,#805f40);border:1px solid #604a33;z-index:-1;pointer-events:none}
#outside-world>#fork-signs button{width:100%;min-width:0;min-height:49px;padding:9px 15px;font-size:18px;rotate:-3deg;pointer-events:auto!important}
#outside-world>#fork-signs button+button{rotate:3deg}
@media(max-width:1050px){
 .trail-look-controls:not([hidden]){display:grid}
 #journey-viewport:not([data-stop=glade]) .journey-reading-dock{bottom:78px;gap:9px}
 #journey-next.path-entry{top:57%;left:50%;width:205px;min-height:52px;font-size:16px!important}
 #journey-next.path-entry:after{height:54px}
 .journey-viewport>.fork-signs{top:52%;left:50%;width:205px;gap:8px}
 .journey-viewport>.fork-signs button{min-height:44px;font-size:16px}
 .journey-viewport>.fork-signs:before{height:140px}
 .workbook-pouch{--discovery-pouch-left:82px}
}
@media(max-width:600px){
 #journey-viewport{--cam-z:-70px}
 #journey-viewport[data-stop=trail]{--cam-z:1650px}
 #journey-viewport[data-stop=fork]{--cam-z:1950px}
 #journey-viewport:is([data-stop=bridge],[data-stop=garden]){--cam-z:2250px}
 #journey-viewport:not([data-stop=glade]) .journey-reading-dock{bottom:64px;gap:8px}
 .trail-look-controls>button{font-size:12px;padding:6px 5px}
 .outside-world .discovery-thicket>[data-discovery-caption]{font-size:9px;max-width:110px}
 .trail-glimmer:nth-child(2n){display:none}
 .patio-discoveries>.workbook-find-patio{--find-left:76%;--find-top:65%}
 .workbook-pouch{--discovery-pouch-left:97px}
 .workbook-pouch>summary{width:46px}
 .workbook-pouch-sheet{left:-85px}
}
#journey-app[data-motion=still] .outside-world,#journey-app[data-motion=still] .trail-glimmer,#journey-app[data-motion=still] .workbook-find:after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.outside-world,.trail-glimmer,.workbook-find:after{animation:none!important;transition:none!important}}

/* intro-v12.1.css */
/* Actual cover lettering on a new continuous arched scroll. Load after v11. */
.scroll-arrival{width:min(1260px,98vw);perspective:1500px}
.banner-invitation{width:100%;min-height:0;height:auto;aspect-ratio:3;filter:drop-shadow(0 24px 32px #050819a6)}
.invitation-closed{inset:0;background-image:url('assets/scroll-v12.1/scroll-closed-polished.svg');background-position:center;background-repeat:no-repeat;background-size:100% 100%;transform:none;transform-origin:center center;transition:opacity .75s .15s,transform 1.15s cubic-bezier(.2,.75,.2,1)}
.invitation-closed .paper-fold,.invitation-closed .invitation-twine{display:none!important}
.invitation-inside{position:absolute;inset:0;min-height:0;opacity:0;transform:scale(.72,.16);transform-origin:50% 50%;transition:opacity .45s .1s,transform 1.4s .1s cubic-bezier(.16,.86,.22,1.1)}
.invitation-inside .scroll-lettering{display:block;width:100%;max-width:none;overflow:visible;filter:drop-shadow(0 2px 0 #51304933)}
.invitation-inside .scroll-lettering img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;overflow:visible}
.invitation-hint{font-size:clamp(17px,2vw,25px);margin:0 auto -9px;max-width:90%;color:#ffe6b5;letter-spacing:.045em}
.discovery-tagline{font-size:clamp(24px,3.5vw,46px);max-width:none;line-height:1.12;margin:-58px auto 0;letter-spacing:.025em;color:#ffe69d;-webkit-text-stroke:.7px #4c2954;paint-order:stroke fill;text-shadow:0 2px 0 #53304e,0 0 18px #dcb7ff66;opacity:0;transform:translateY(10px);filter:blur(5px);transition:opacity 1.2s 1.05s,filter 1.6s 1.05s,transform 1.4s 1.05s}
.intro-feedback{font-size:12px;margin:22px auto 0;max-width:650px;padding-inline:18px;line-height:1.45;color:#e1d0b4}
.wax-seal{width:130px;height:130px;left:calc(50% - 65px);top:calc(50% - 65px)}
.intro-revealed .invitation-closed{opacity:0;transform:scale(.9,.6) translateY(12px);pointer-events:none}
.intro-revealed .invitation-inside{opacity:1;transform:scale(1)}
.intro-revealed .scroll-lettering{animation:cq-scroll-grand-v12 1.7s .1s cubic-bezier(.17,.74,.2,1) both}
.intro-revealed .discovery-tagline{opacity:1;transform:none;filter:blur(0)}
.intro-revealed .discovery-rays{animation:cq-scroll-rays-v12 3.4s .12s ease-out both}
.intro-revealed .discovery-sparks i{animation-duration:2.8s;animation-delay:.3s}
.inside-stars{display:none}
.journey-brand img{width:100%;height:auto;object-fit:contain}
@keyframes cq-scroll-grand-v12{0%{transform:scale(.72) rotate(-3deg);filter:brightness(1.24) drop-shadow(0 0 32px #ffe49f99)}55%{transform:scale(1.035) rotate(.5deg);filter:brightness(1.08) drop-shadow(0 0 21px #ffe49f55)}100%{transform:none;filter:brightness(1) drop-shadow(0 2px 0 #51304933)}}
@keyframes cq-scroll-rays-v12{0%{opacity:0;transform:scale(.32) rotate(-11deg)}24%{opacity:.9}68%{opacity:.38}100%{opacity:0;transform:scale(1.28) rotate(12deg)}}
@media(max-width:600px){.scroll-arrival{width:100vw}.banner-invitation{aspect-ratio:3;margin:9px 0 0}.invitation-hint{font-size:17px;margin-bottom:12px;max-width:285px}.discovery-tagline{font-size:clamp(22px,5.4vw,30px);max-width:92%;margin:-10px auto 0;line-height:1.12}.intro-feedback{max-width:300px;font-size:11px;margin-top:24px}.wax-seal{width:85px;height:85px;left:calc(50% - 42.5px);top:calc(50% - 42.5px)}.seal-imprint b{font-size:12px}.seal-imprint svg{width:23px;height:23px}}
@media(min-width:601px) and (max-width:900px){.discovery-tagline{margin-top:-32px}}
@media(max-height:640px) and (min-width:601px){.scroll-arrival{width:min(1020px,95vw)}.invitation-hint{font-size:18px}.discovery-tagline{font-size:32px;margin-top:-43px}.intro-feedback{margin-top:18px}}
#journey-app[data-motion=still] .intro-revealed .scroll-lettering,#journey-app[data-motion=still] .intro-revealed .invitation-inside{animation:none!important;transform:none!important;filter:none!important}
#journey-app[data-motion=still] .intro-revealed .discovery-tagline{opacity:1;transform:none;filter:none}
@media(prefers-reduced-motion:reduce){.intro-revealed .scroll-lettering,.intro-revealed .invitation-inside{animation:none!important;transform:none!important;filter:none!important}.intro-revealed .discovery-tagline{opacity:1;transform:none;filter:none}.discovery-rays,.discovery-sparks{display:none!important}}

/* habitat-repair-v12.css */
/* v12: source-native habitat edges; load AFTER trail-world-v11.css.
   All masks use the existing exact full-stage source replica. No source art is edited. */
#outside-world .natural-habitat-cover{clip-path:none!important;mask-mode:luminance;mask-repeat:no-repeat;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;-webkit-mask-size:100% 100%;pointer-events:none!important}
#outside-world .discovery-thicket:not(.thicket-badger)>.world-friend{--actor-body-width:100%;--actor-body-height:100%}
#outside-world .discovery-thicket:not(.thicket-badger) .actor-body>img{object-position:center top}
#outside-world .discovery-thicket .actor-body>img,#outside-world .discovery-thicket:is(.is-near,.is-focused,.discovered) .actor-body>img{translate:0 0!important;transition:none!important}
/* The actual source grasses hide Mouse. A second fern mound obscured its log rim. */
#outside-world .thicket-mouse>.thicket-branch{display:none!important}
/* Keep rooted Badger fringe as the accepted reference. Do not add detached perches. */
#outside-world .thicket-badger>.thicket-branch{display:block}
#outside-world .thicket-owl>.thicket-branch,#outside-world .thicket-raven>.thicket-branch,#outside-world .thicket-troll>.thicket-branch,#outside-world .thicket-gnome>.thicket-branch{display:none!important}
#outside-world .thicket-mouse>.natural-habitat-cover{mask-image:url(#log-mask-v12);-webkit-mask-image:url(#log-mask-v12)}
#outside-world .thicket-mouse .actor-body>img{filter:brightness(0.63) saturate(.88)}
#outside-world .thicket-badger>.natural-habitat-cover{mask-image:url(#sett-mask-v12);-webkit-mask-image:url(#sett-mask-v12)}
#outside-world .thicket-badger .actor-body>img{filter:brightness(0.76) saturate(.88)}
#outside-world .thicket-owl>.natural-habitat-cover{mask-image:url(#owl-mask-v12);-webkit-mask-image:url(#owl-mask-v12)}
#outside-world .thicket-owl .actor-body>img{filter:brightness(0.72) saturate(.88)}
#outside-world .thicket-raven>.natural-habitat-cover{mask-image:url(#raven-mask-v12);-webkit-mask-image:url(#raven-mask-v12)}
#outside-world .thicket-raven .actor-body>img{filter:brightness(0.69) saturate(.88)}
#outside-world .thicket-troll>.natural-habitat-cover{mask-image:url(#bridge-mask-v12);-webkit-mask-image:url(#bridge-mask-v12)}
#outside-world .thicket-troll .actor-body>img{filter:brightness(0.67) saturate(.88)}
#outside-world .thicket-gnome>.natural-habitat-cover{mask-image:url(#garden-mask-v12);-webkit-mask-image:url(#garden-mask-v12)}
#outside-world .thicket-gnome .actor-body>img{filter:brightness(0.75) saturate(.88)}
@media(prefers-reduced-motion:reduce){#outside-world .discovery-thicket .actor-body>img{transition:none!important}}

/* pull-down-v12.css */
/* One native disclosure replaces the three competing header boards. */
#quest-pulldown{position:relative;width:clamp(220px,30vw,340px);max-width:calc(100vw - 28px);pointer-events:auto;z-index:70;color:#3e2546}
#quest-pulldown>.quest-menu-toggle{position:relative;display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:60px;padding:11px 17px;border:2px solid #73503e;border-radius:10px 15px 12px 11px;background:linear-gradient(100deg,#d9af68,#fff0bd 12%,#fff3ce 70%,#e8c482);color:#3e2546;box-shadow:0 4px 0 #704b37,0 9px 15px #152d2566;font:400 21px/1.08 "Quest Display",sans-serif;cursor:pointer;pointer-events:auto}
#quest-pulldown>.quest-menu-toggle:before{content:"";position:absolute;inset:4px;border:1px solid #c3975680;border-radius:6px 11px 8px 7px;pointer-events:none}
.quest-menu-toggle>span,.quest-menu-toggle>svg{pointer-events:none}
.quest-menu-book{width:30px;height:30px;flex:0 0 30px}
.quest-menu-chevron{width:16px;height:12px;flex:0 0 16px;transition:rotate .2s ease}
.quest-menu-toggle[aria-expanded=true]>.quest-menu-chevron{rotate:180deg}
#quest-pulldown>.quest-menu-toggle:hover{filter:brightness(1.045)}
#quest-pulldown>.quest-menu-toggle:focus-visible{outline:3px solid #fff1ad;outline-offset:5px;box-shadow:0 0 0 7px #4b304b,0 7px 12px #172d2866}
#quest-pulldown>.quest-menu{position:absolute;right:0;top:calc(100% + 11px);display:grid;gap:5px;width:100%;max-width:calc(100vw - 28px);max-height:min(64svh,510px);overflow:auto;overscroll-behavior:contain;padding:13px 11px 12px;border:2px solid #9b7445;border-radius:9px 7px 13px 11px;background:linear-gradient(105deg,#e6c18a,#fff1c8 10%,#fff5d8 80%,#e3bf85);box-shadow:0 6px 0 #6a4b3855,0 14px 30px #142b2877;pointer-events:auto;isolation:isolate}
#quest-pulldown>.quest-menu[hidden]{display:none!important}
#quest-pulldown .quest-menu-heading{margin:0 5px 3px;font:800 9px/1.2 "Segoe UI",sans-serif;letter-spacing:.13em;color:#7e5942}
#quest-pulldown .quest-menu>button{display:block;min-height:52px;width:100%;padding:10px 12px;border:1px solid #aa88564d;border-radius:6px 10px 7px 5px;background:#fff8e6a8;color:#402747;text-align:left;box-shadow:none;font:400 17px/1.16 "Quest Display",sans-serif;pointer-events:auto;cursor:pointer}
#quest-pulldown .quest-menu>button:hover{background:#e6f1cd;border-color:#71875f}
#quest-pulldown .quest-menu>button:focus-visible{outline:3px solid #7e5079;outline-offset:1px;background:#fff9df;border-color:#795379}
.pull-choice-title,.pull-choice-hint{display:block;pointer-events:none}
.pull-choice-hint{font:400 11px/1.4 "Segoe UI",sans-serif;color:#735b54;margin-top:3px}
@media(max-width:1050px){#quest-pulldown{width:clamp(220px,35vw,305px)}#quest-pulldown>.quest-menu-toggle{font-size:18px;min-height:55px;gap:9px;padding:10px 13px}.quest-menu-book{width:27px;height:27px;flex-basis:27px}}
@media(max-width:600px){#quest-pulldown{width:min(320px,calc(100vw - 28px))}#quest-pulldown>.quest-menu-toggle{min-height:50px;font-size:18px;padding:8px 13px;gap:10px}#quest-pulldown>.quest-menu{top:calc(100% + 9px);max-height:calc(100svh - 170px);padding:11px 9px}#quest-pulldown .quest-menu>button{min-height:52px;font-size:17px;padding:9px 11px}.quest-menu-book{width:25px;height:25px;flex-basis:25px}}
#journey-app[data-motion=still] .quest-menu-chevron{transition:none}
@media(prefers-reduced-motion:reduce){.quest-menu-chevron{transition:none}}

/* parent-guide-v12.css */
.parent-guide-v12{max-width:1020px;padding-top:2px;padding-bottom:30px;color:#412b46}
.parent-guide-lead{max-width:700px;margin:0 0 28px;font:400 18px/1.6 "Segoe UI",sans-serif;color:#69514f}
.parent-guide-answers{padding:4px 28px 8px;border:1px solid #bb98676b;border-radius:11px 18px 12px 9px;background:linear-gradient(105deg,#eed2a0,#fff4d5 9%,#fff7df 83%,#ecd0a1);box-shadow:0 4px 0 #91704c33,inset 0 2px #fff9e5}
.parent-answer{display:grid;grid-template-columns:52px minmax(0,1fr);gap:20px;padding:27px 0;border-bottom:1px solid #b293684d;scroll-margin-top:25px;outline-offset:7px}
.parent-answer:last-child{border-bottom:0}
.parent-answer-number{display:grid;place-items:center;width:44px;height:44px;margin-top:1px;border:1px solid #c3995f;border-radius:45% 49% 46% 42%;background:#efd18c;color:#6e4c41;font:400 18px "Quest Display",sans-serif;box-shadow:0 2px 0 #9e78484d;rotate:-5deg}
.parent-answer h2{margin:0 0 12px;color:#4c2b50;font:400 29px/1.1 "Quest Display",sans-serif;letter-spacing:0}
.parent-answer p{max-width:745px;font:400 16px/1.65 "Segoe UI",sans-serif;margin:0 0 12px}
.parent-answer .parent-answer-note{font-size:14px;line-height:1.6;color:#765e53}
.parent-guide-action{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;margin-top:4px;padding:10px 17px;border:1px solid #87623c;border-radius:7px 10px 8px 6px;background:linear-gradient(#ffebae,#e7bd72);color:#472b45;box-shadow:0 3px 0 #8b663f;font:400 17px "Quest Display",sans-serif;cursor:pointer}
.parent-guide-action:hover{filter:brightness(1.04)}
.parent-guide-action:focus-visible,.parent-answer:focus-visible{outline:3px solid #8c5d83;outline-offset:5px}
.parent-guide-status{display:inline-block;padding:5px 12px;border:1px solid #b89b63;border-radius:20px;background:#eee4bb;color:#66523c;font:700 12px/1.25 "Segoe UI",sans-serif}
@media(max-width:600px){.parent-guide-v12{padding-bottom:20px}.parent-guide-lead{font-size:16px;line-height:1.55;margin-bottom:21px}.parent-guide-answers{padding:1px 15px 5px}.parent-answer{grid-template-columns:33px minmax(0,1fr);gap:12px;padding:22px 0}.parent-answer-number{width:31px;height:34px;font-size:15px}.parent-answer h2{font-size:24px;margin-bottom:10px}.parent-answer p{font-size:15px;line-height:1.6}.parent-answer .parent-answer-note{font-size:13px}.parent-guide-action{min-height:44px;font-size:16px;padding:9px 12px;gap:12px;max-width:100%}}

/* journey-finish-v12.css */
/* Finite opening celebration; scene and reading controls remain independent. */
.discovery-intro{transition:opacity .8s ease,filter .8s ease;z-index:200}
.discovery-intro.intro-departing{opacity:0;filter:blur(8px);pointer-events:none}
.scroll-confetti{position:absolute;inset:0;overflow:clip;pointer-events:none;z-index:4}
.scroll-confetti i{position:absolute;left:50%;top:47%;width:var(--size);height:calc(var(--size)*.55);background:var(--colour);border-radius:2px;opacity:0;transform:translate(-50%,-50%)}
.scroll-confetti i:nth-child(3n){border-radius:100% 0 100% 0;height:var(--size)}
.scroll-confetti i:nth-child(5n){clip-path:polygon(50% 0,62% 35%,100% 50%,62% 65%,50% 100%,38% 65%,0 50%,38% 35%);height:var(--size);border-radius:0}
.intro-revealed .scroll-confetti i{animation:invitation-burst-v12 2.9s var(--delay) cubic-bezier(.12,.56,.32,1) both}
@keyframes invitation-burst-v12{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0)}8%{opacity:1}55%{opacity:.95}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.8) rotate(var(--spin))}}
/* The gate follows the cottage lane before turning toward the woodland. */
#journey-viewport[data-transit=lane] #scene-camera{animation:cottage-lane-v12 2.65s cubic-bezier(.3,.6,.2,1) both}
@keyframes cottage-lane-v12{0%,22%{transform:translate3d(0,0,-90px)}65%{transform:translate3d(-5vw,8vh,400px) rotateY(-2deg)}100%{transform:translate3d(-19vw,15vh,680px) rotateY(-8deg)}}
#journey-viewport[data-transit=lane] .village-friends{opacity:0;transition:opacity .65s}
#journey-viewport[data-transit=lane] .journey-story{opacity:.45;transition:opacity .6s}
#journey-viewport[data-transit=lane] .village-gate{pointer-events:none!important}
.parents-view{background:#f5e7c5;min-height:100svh;padding-bottom:80px}
.parents-view .view-title{margin-bottom:20px;color:#49264f}
.parents-view .parent-guide-lead,.parents-view .view-toolbar p{color:#654457}
#journey-app[data-motion=still] .scroll-confetti{display:none}
@media(prefers-reduced-motion:reduce){.scroll-confetti{display:none}.discovery-intro{transition:none}#journey-viewport[data-transit=lane] #scene-camera{animation:none}}

/* outward-world-v12.1.css */
/* The same woodland is visible through the source-aligned patio foreground. */
#journey-viewport{--forest-depth:-1900px;--entry-z:-90px}
#journey-viewport[data-stop=glade]{--forest-depth:-600px;--cam-z:var(--entry-z)}
#journey-viewport[data-transit=outward]{--forest-depth:-1400px}
#journey-viewport .outside-world{transform:translate3d(calc(-1*var(--world-u)),calc(-1*var(--world-v)),var(--forest-depth));transition:transform 2.2s cubic-bezier(.2,.64,.13,1)}
#journey-viewport[data-transit=outward] .outside-world{transition-duration:2.65s}
#journey-viewport[data-stop=glade] .outside-world>.trail-plate{opacity:1}
#journey-viewport .scenery-glade{background:none;overflow:visible}
#journey-viewport:not([data-stop=glade]) .scenery-glade .village-gate{visibility:hidden!important;pointer-events:none!important}
.patio-cutout{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible;pointer-events:none!important}
.intro-world{background:url('assets/trail-v11/trail-panorama-v11.webp') center 58%/cover no-repeat}
#journey-viewport:not([data-stop=glade]) .scenery-glade{transition:opacity 1.1s ease,visibility 0s 1.1s}
/* Gate joins the exact image-space posts instead of guessing a viewport offset. */
#scene-camera .scenery-glade>.village-gate{position:absolute;left:var(--source-gate-x);top:var(--source-gate-y);right:auto;bottom:auto;width:var(--source-gate-w);height:var(--source-gate-h);translate:none;transform:none!important;filter:drop-shadow(0 3px 2px #24382b55);z-index:2;opacity:1}
#scene-camera .scenery-glade>.village-gate .gate-left{inset:0;height:100%;width:100%;gap:5px}
#scene-camera .scenery-glade>.village-gate .gate-left:before{top:25%;height:9%}
#scene-camera .scenery-glade>.village-gate .gate-left:after{top:68%;height:9%}
#scene-camera .scenery-glade>.village-gate .garden-gate-touch{left:8%;top:0;width:84%;height:34%;min-height:48px}
#scene-camera .scenery-glade>.village-gate .gate-invitation{left:65%;top:20%;width:20px;height:10px}
#journey-viewport[data-gate=returning] .gate-left{transform:rotateY(-100deg)}
#journey-viewport[data-gate=returning] .gate-invitation{opacity:0}
#journey-viewport[data-transit=outward] #scene-camera{animation:through-garden-gate-v12-1 2.65s cubic-bezier(.25,.62,.2,1) both}
#journey-viewport[data-transit=outward] .village-friends{opacity:0;transition:opacity .7s}
#journey-viewport[data-transit=outward] .journey-story{opacity:.7}
@keyframes through-garden-gate-v12-1{0%,24%{transform:translate3d(0,0,var(--entry-z))}100%{transform:translate3d(-2vw,2vh,900px)}}
.catalogue-native-state{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0 14px}
.catalogue-native-state label{display:grid;gap:7px;color:#51344f;font-weight:700;font-size:14px}
.catalogue-native-state select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #b3916b;border-radius:8px;background:#fff9e8;color:#432a44;font:inherit}
@media(max-width:600px){#journey-viewport{--entry-z:-70px}.catalogue-native-state{grid-template-columns:1fr;gap:12px}}
@media(max-width:600px){
 #journey-app[data-view=scene] .workbook-directions>.header-motion{right:68px;min-width:44px;width:44px;height:44px;padding:0;font-size:0;border-radius:50%}
 #journey-app[data-view=scene] .workbook-directions>.header-motion:before{content:"Ⅱ";font:700 20px/1 "Segoe UI",sans-serif}
 #journey-app[data-view=scene] .workbook-directions>.header-motion[aria-pressed=true]:before{content:"▶";font-size:15px}
 #journey-app[data-view=scene] .workbook-directions>.header-motion:disabled:before{content:"◌";font-size:25px}
}
#journey-app[data-motion=still] #scene-camera,#journey-app[data-motion=still] .outside-world{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){#scene-camera,.outside-world{animation:none!important;transition:none!important}}

/* mouse-v12.1.css */
/* Mouse stays inside the physical log mouth; the original sprite is untouched.
   Load after habitat-repair-v12.css. Source geometry is 1536 x 1024. */
#outside-world .thicket-mouse{
  --habitat-x:.21354166666666666!important;
  --habitat-y:.5517578125!important;
  --habitat-w:.057291666666666664!important;
  --habitat-h:.1103515625!important;
}
#outside-world .thicket-mouse>.natural-habitat-cover{
  mask-image:url(#log-mask-v12-1)!important;
  -webkit-mask-image:url(#log-mask-v12-1)!important;
  clip-path:none!important;
}
#outside-world .thicket-mouse>.world-friend{
  --actor-body-width:100%;--actor-body-height:100%;
}
#outside-world .thicket-mouse .actor-body{z-index:1}
#outside-world .thicket-mouse .actor-body>img,
#outside-world .thicket-mouse:is(.is-near,.is-focused,.discovered) .actor-body>img{
  object-fit:contain;object-position:center top;translate:0 0!important;
  filter:brightness(.66) saturate(.82);transition:none!important;
}
/* A recessed contact shadow sits behind the head, never over the log edge. */
#outside-world .thicket-mouse>.world-friend:before{
  content:"";display:block!important;position:absolute;left:18%;right:auto;
  top:31%;bottom:auto;width:77%;height:34%;z-index:0;border-radius:50%;
  background:radial-gradient(ellipse,#1c100b96,transparent 70%);
  filter:blur(1px);pointer-events:none!important;
}

/* wind-v12.1.css */
/* Source art stays intact. Only soft foliage above each fixed root takes a gust. */
.wind-glade-layers,.wind-wood-layers{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none!important;user-select:none;z-index:3}
.wind-glade-layers *,.wind-wood-layers *{pointer-events:none!important;user-select:none}
.wind-glade-layers{opacity:1;visibility:visible;transition:opacity 1.3s,visibility 0s}
#journey-viewport:not([data-stop=glade]) .wind-glade-layers{opacity:0;visibility:hidden;transition:opacity 1.3s,visibility 0s 1.3s}
.wind-plant{--wind-response:1;position:absolute;display:block;width:var(--plant-width);left:var(--plant-left);top:var(--plant-top);transform:translateZ(var(--plant-depth,12px)) scaleX(var(--plant-flip,1));transform-origin:48% 91%;pointer-events:none!important}
.wind-plant.wind-bough{aspect-ratio:2}
.wind-plant.wind-fern{aspect-ratio:1.5}
.wind-plant>i{position:absolute;inset:0;display:block;width:100%;height:100%;background-position:center;background-size:100% 100%;background-repeat:no-repeat;pointer-events:none!important}
.wind-bough>.wind-tip{background-image:url('assets/garden-branch-v8-a.webp')}
.wind-fern>.wind-tip,.wind-fern>.wind-root{background-image:url('assets/trail-v11/fern-fringe-v11.webp')}
.wind-tip{transform-origin:48% 91%;transform:rotate(0deg);will-change:auto}
.wind-bough .wind-tip{transform-origin:5% 94%}
.wind-fern .wind-tip{mask-image:linear-gradient(#000 0 76%,#000d 81%,transparent 89%)}
.wind-root{mask-image:linear-gradient(transparent 0 77%,#000 86%);z-index:2}
.wind-fern:before{content:"";position:absolute;left:25%;top:87%;width:48%;height:8%;border-radius:50%;background:#18372c30;filter:blur(3px);pointer-events:none!important}
.wind-plant.is-wind-gust .wind-tip{animation:rooted-garden-gust-v121 var(--wind-duration,8s) var(--wind-delay,0s) cubic-bezier(.4,0,.3,1) both;will-change:transform}
@keyframes rooted-garden-gust-v121{0%,100%{transform:rotate(0deg);filter:brightness(1)}16%{transform:rotate(calc(var(--wind-angle)*var(--wind-response)*.36));filter:brightness(1.012)}37%{transform:rotate(calc(var(--wind-angle)*var(--wind-response)));filter:brightness(1.025)}61%{transform:rotate(calc(var(--wind-angle)*var(--wind-response)*-.28));filter:brightness(1.008)}81%{transform:rotate(calc(var(--wind-angle)*var(--wind-response)*.17));filter:brightness(1.015)}}
.wind-patio-left{--plant-left:-13%;--plant-top:-9%;--plant-width:38%;--plant-depth:90px}
.wind-patio-right{--plant-left:79%;--plant-top:-6%;--plant-width:40%;--plant-depth:42px;--plant-flip:-1;--wind-response:-1}
.wind-trail-left{--plant-left:10%;--plant-top:68%;--plant-width:18%;--plant-depth:28px}
.wind-trail-right{--plant-left:78%;--plant-top:74%;--plant-width:15%;--plant-depth:16px;--plant-flip:-1;--wind-response:-1}
.wind-woods-left{--plant-left:31%;--plant-top:37%;--plant-width:11%;--plant-depth:18px;filter:brightness(.93)}
.wind-woods-right{--plant-left:80%;--plant-top:37%;--plant-width:13%;--plant-depth:13px;--plant-flip:-1;--wind-response:-1;filter:brightness(.91)}
.wind-bridge-frond{--plant-left:12%;--plant-top:35%;--plant-width:12%;--plant-depth:22px;filter:brightness(.94)}
.wind-garden-bough{--plant-left:82%;--plant-top:12%;--plant-width:17%;--plant-depth:9px;--plant-flip:-1;--wind-response:-1}
@media(max-width:600px){.wind-patio-left{--plant-left:-45%;--plant-top:-4%;--plant-width:75%;--plant-depth:55px}.wind-patio-right{--plant-left:70%;--plant-top:-3%;--plant-width:75%;--plant-depth:27px}}
#journey-app[data-motion=still] .wind-tip,#journey-app:not([data-view=scene]) .wind-tip{animation:none!important;transform:none!important;will-change:auto!important}
#journey-app[data-motion=still] .wind-glade-layers{transition:none!important}
@media(prefers-reduced-motion:reduce){.wind-tip{animation:none!important;transform:none!important;will-change:auto!important}.wind-glade-layers{transition:none!important}}

/* wayfinding-v12.1.css */
/* Ground-anchored world signs. Load after trail-world-v11.css.
   The foot, rather than a viewport corner, defines each source location. */
#outside-world > #journey-next.path-entry {
  --waymarker-foot:63.5%;
  left:51.5%;
  top:calc(var(--waymarker-foot) - 154px);
  bottom:auto;
  width:225px;
  height:62px;
  min-height:62px;
  box-sizing:border-box;
  translate:-50% 0;
  padding:10px 38px 10px 16px;
  font-size:20px!important;
  border-color:#805c39;
  box-shadow:0 3px 0 #6e4b31,inset 0 1px 0 #fff3bd99,0 6px 8px #19372c4d;
}
#outside-world > #journey-next.path-entry::before {
  content:"→";
  right:13px;
  color:#654431;
  font-size:22px;
}
#outside-world > #journey-next.path-entry::after,
#outside-world > #journey-next.path-entry:focus-visible::after {
  content:"";
  left:50%;
  top:100%;
  bottom:auto;
  width:80px;
  height:92px;
  max-width:none;
  border:0;
  border-radius:0;
  translate:-50% 0;
  rotate:0deg;
  padding:0;
  background:
    linear-gradient(90deg,#67472f,#c49b61 42%,#9e764b 71%,#60432f) center top / 13px 86px no-repeat,
    radial-gradient(ellipse,#263b2c80 0 10%,#263b2c3b 37%,transparent 72%) center bottom / 80px 12px no-repeat;
  box-shadow:none;
  opacity:1;
  z-index:-1;
  pointer-events:none;
}
/* The path divides on the stones at source (845,500). Boards stand above
   this foot; resizing keeps that physical point fixed in the world. */
#outside-world > #fork-signs {
  left:55%;
  top:48.8%;
  bottom:auto;
  width:214px;
  height:auto;
  min-height:0;
  box-sizing:content-box;
  padding-bottom:42px;
  gap:8px;
  translate:-50% -100%;
  transform:none;
  isolation:isolate;
}
#outside-world > #fork-signs::before {
  content:"";
  position:absolute;
  left:50%;
  top:20px;
  bottom:0;
  width:14px;
  height:auto;
  translate:-50% 0;
  border:1px solid #65482e;
  background:linear-gradient(90deg,#68492f,#be965d 40%,#9f784b 72%,#65462d);
  box-shadow:2px 1px 2px #203e2c40,inset 1px 0 #e0be8580;
  z-index:-1;
  pointer-events:none;
}
#outside-world > #fork-signs::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  width:84px;
  height:14px;
  translate:-50% 0;
  rotate:-7deg;
  background:radial-gradient(ellipse,#243b2d8c 0 8%,#243b2d42 36%,transparent 72%);
  z-index:-2;
  pointer-events:none;
}
#outside-world > #fork-signs button {
  min-height:50px;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:10px 14px;
  box-shadow:0 3px 0 #715034,inset 0 1px #fff4cf80,0 6px 8px #18372c45;
}
#outside-world > #fork-signs button + button {
  box-shadow:0 3px 0 #586c3e,inset 0 1px #f4ffce80,0 6px 8px #18372c45;
}
@media(max-width:600px) {
  #outside-world > #fork-signs {width:214px}
  #outside-world > #fork-signs button {font-size:18px;min-height:50px}
}

/* discoveries-v12.1.css */
/* Optional Help Kitten / Help Puppy collection. Load after legacy scene CSS. */
.workbook-discoveries{position:absolute;inset:0;z-index:24;pointer-events:none!important;user-select:none}
.workbook-discoveries *{pointer-events:none!important}
.workbook-discoveries>.workbook-find,.quest-world-finds>.workbook-find{position:absolute;width:64px;height:56px;min-width:44px;min-height:44px;padding:0;border:0;background:none;border-radius:12px;cursor:pointer;pointer-events:auto!important;touch-action:manipulation;rotate:var(--find-angle,0deg);transform:none}
.quest-find-patio{left:76%!important;top:68%!important;--find-angle:-8deg}
.quest-world-finds{position:absolute;inset:0;pointer-events:none!important}
#outside-world .quest-find-trail{left:34%;top:67%;--find-angle:8deg}
#outside-world .quest-find-fork{left:47%;top:29%;--find-angle:-6deg}
#outside-world .quest-find-bridge{left:27%;top:35%;--find-angle:5deg}
#outside-world .quest-find-garden{left:75.25%;top:36%;--find-angle:-9deg}
.workbook-find-art{position:absolute;left:0;bottom:1px;width:100%;height:100%;max-height:none;object-fit:contain;filter:brightness(.76) saturate(.9);opacity:.9;translate:none;transition:filter .3s,opacity .3s}
#journey-viewport .workbook-find:after{content:"";position:absolute;z-index:2;left:-36%;bottom:-22%;width:145%;height:105%;background:url('assets/trail-v11/fern-fringe-v11.webp') center bottom/100% 100% no-repeat;transform-origin:48% 91%;pointer-events:none!important;rotate:-13deg;transition:rotate .55s,translate .55s;opacity:1}
.quest-find-bridge:after{scale:-1 1;rotate:9deg}.quest-find-garden:after{rotate:-5deg}
#journey-viewport .workbook-find:is(.is-near,.is-peeked,:focus-visible):after{rotate:-29deg;translate:-14% 5%}
.workbook-find:is(.is-near,.is-peeked,:focus-visible)>.workbook-find-art{filter:none;opacity:1}
.workbook-find:focus-visible{outline:3px dashed #ffe99a;outline-offset:4px;background:#fff1bf18}
.workbook-find-caption{position:absolute;left:50%;bottom:65px;translate:-50% 0;width:max-content;max-width:150px;padding:6px 9px;border:1px solid #a6814c;border-radius:7px;background:#fff1ccee;color:#4d2c4c;font:400 12px/1.15 "Quest Display",sans-serif;text-align:center;opacity:0;z-index:5;pointer-events:none;box-shadow:0 3px 0 #60432f55}
.workbook-find:is(.is-near,.is-peeked,:focus-visible)>.workbook-find-caption{opacity:1}
.workbook-find.is-found>.workbook-find-art{opacity:.32;filter:grayscale(1)}
.workbook-find.is-found:before{content:"✓";position:absolute;right:-2px;top:0;z-index:5;width:21px;height:21px;border-radius:50%;background:#fff1bb;color:#355c41;border:1px solid #46684b;display:grid;place-items:center;font:800 15px "Segoe UI",sans-serif;pointer-events:none}
.find-sparkles{position:absolute;inset:-8px;z-index:6;pointer-events:none!important}
.find-sparkles i{position:absolute;left:50%;top:50%;width:7px;height:7px;background:#ffe6a2;opacity:0;clip-path:polygon(50% 0,62% 35%,100% 50%,62% 65%,50% 100%,38% 65%,0 50%,38% 35%);--sx:-34px;--sy:-28px}
.find-sparkles i:nth-child(2){--sx:36px;--sy:-22px}.find-sparkles i:nth-child(3){--sx:-29px;--sy:22px}.find-sparkles i:nth-child(4){--sx:31px;--sy:29px}
.is-newly-found .find-sparkles i{animation:quest-find-spark .8s ease-out both}
@keyframes quest-find-spark{0%{opacity:0;transform:scale(.3)}20%{opacity:1}100%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.6)}}
.quest-collection{position:absolute;left:var(--discovery-pouch-left,134px);bottom:var(--discovery-pouch-bottom,15px);z-index:59;max-width:none;color:#493046}
.quest-collection>summary{display:flex;align-items:center;gap:4px;width:97px;height:54px;min-width:44px;min-height:44px;position:relative;padding:4px 7px 4px 3px;border:1px solid #ba9459;background:linear-gradient(#fff2c7,#e8c48a);border-radius:9px 13px;list-style:none;cursor:pointer;filter:drop-shadow(0 4px 3px #18362c77);box-sizing:border-box}
.quest-collection>summary::-webkit-details-marker{display:none}.quest-collection>summary::marker{content:""}
.quest-collection>summary>svg{display:block;flex:0 0 31px;width:31px;height:39px;pointer-events:none}
.quest-collection-label{display:block;font:700 10px/1.2 "Segoe UI",sans-serif;color:#684335;text-align:center;pointer-events:none}
.quest-collection-label>strong{display:block;font:800 19px/1.1 "Segoe UI",sans-serif;color:#492b47}
.quest-collection>summary:focus-visible{outline:3px solid #ffe78d;outline-offset:3px}
.quest-collection .workbook-pouch-sheet{position:absolute;left:0;bottom:66px;width:min(360px,calc(100vw - 28px));max-height:calc(100svh - 155px);box-sizing:border-box;overflow:auto;padding:18px;border:2px solid #9d784b;border-radius:10px 15px 9px 12px;background:linear-gradient(100deg,#e7ca92,#fff0c9 9%,#fff4d6 85%,#e8ca94);box-shadow:0 6px 0 #6b4e3955,0 14px 25px #18372c66}
.workbook-pouch-kicker{font:800 8px/1.2 "Segoe UI",sans-serif;letter-spacing:.12em;color:#8d5f4e;margin:0 0 5px}
.quest-collection h2{font:400 26px/1.1 "Quest Display",sans-serif;margin:0 0 10px;color:#4d2c4c}
.quest-collection p{font:400 12px/1.5 "Segoe UI",sans-serif;margin:9px 0;color:#634753}
.help-quest-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.help-quest-choices button,#workbook-find-reset{min-height:44px;padding:8px 10px;border:1px solid #886640;border-radius:6px 9px;background:#ffe2a0;color:#4d2c4c;font:400 14px/1.1 "Quest Display",sans-serif;cursor:pointer}
.help-quest-choices button[aria-pressed=true]{background:#63435c;color:#fff1c5;box-shadow:inset 0 0 0 2px #e9c780}
.quest-collection .quest-switch-note{font-size:10px;line-height:1.4;color:#775f52}
.quest-collection-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:14px 0}
.quest-collection-slots>li{min-height:86px;position:relative;display:grid;grid-template-rows:53px auto;align-items:center;justify-items:center;padding:5px;border:1px dashed #af8c60;border-radius:8px;background:#d4b98722;text-align:center;box-sizing:border-box}
.quest-collection-slots>li.is-filled{background:#fff9e2;border-style:solid;border-color:#8c8954}
.quest-collection-slots .unfound-mark{font:400 33px "Quest Display",sans-serif;color:#aa8c66;grid-row:1}.quest-collection-slots img{width:56px;height:51px;object-fit:contain;grid-row:1}
.quest-collection-slots [data-slot-name]{font:600 10px/1.2 "Segoe UI",sans-serif;color:#725642}
.quest-thanks{display:flex;align-items:center;gap:10px;padding:9px;background:#e0e7b8;border:1px solid #a9af74;border-radius:9px;margin:10px 0}
.quest-thanks img{width:74px;height:74px;object-fit:contain;flex:0 0 74px}.quest-thanks p{font-weight:700;color:#445239}
.quest-find-toast{position:absolute;z-index:58;left:50%;bottom:165px;translate:-50% 0;max-width:calc(100vw - 40px);width:max-content;padding:9px 15px;border:1px solid #d6b56c;border-radius:20px;background:#fff1ccef;color:#4e2d4b;box-shadow:0 4px 9px #173b3455;font:600 13px/1.3 "Segoe UI",sans-serif;pointer-events:none!important;text-align:center}
@media(max-width:1050px) and (min-width:601px){.quest-collection{left:var(--discovery-pouch-left,82px);bottom:7px}.quest-collection>summary{width:93px;height:48px}}
@media(max-width:600px){.quest-collection{left:var(--discovery-pouch-left,103px);bottom:13px}.quest-collection>summary{width:96px;height:47px}.quest-collection>summary>svg{width:28px;height:35px;flex-basis:28px}.quest-collection .workbook-pouch-sheet{left:-90px;bottom:59px;max-height:calc(100svh - 145px)}.quest-find-patio{left:76%!important;top:65%!important}.workbook-discoveries>.workbook-find{width:52px;height:48px}.workbook-find-caption{font-size:11px;max-width:130px;bottom:57px}.quest-find-toast{bottom:220px;font-size:12px}}
#journey-app[data-motion=still] .workbook-find:after,#journey-app[data-motion=still] .workbook-find-art{transition:none;animation:none}
#journey-app[data-motion=still] .find-sparkles{display:none}
@media(prefers-reduced-motion:reduce){.workbook-find:after,.workbook-find-art{transition:none!important;animation:none!important}.find-sparkles{display:none!important}}
/* Keep the collection below the fixed scene header; its own contents scroll. */
#workbook-pouch.quest-collection .workbook-pouch-sheet{max-height:calc(100svh - 220px)}
@media(max-width:600px){#workbook-pouch.quest-collection .workbook-pouch-sheet{max-height:calc(100svh - 230px)}}
@media(max-width:600px){.quest-world-finds>.workbook-find{width:52px;height:48px}}

/* raven-troll-gnome-v12.1.css */
/* Broad source-native habitat boundaries, not face-sized cut-out holes. */
#outside-world :is(.thicket-raven,.thicket-troll,.thicket-gnome)>.world-friend{--actor-body-width:100%;--actor-body-height:100%;overflow:visible}
#outside-world :is(.thicket-raven,.thicket-troll,.thicket-gnome) .actor-body{transform:none!important;translate:none!important;rotate:0deg!important;overflow:visible;will-change:auto}
#outside-world :is(.thicket-raven,.thicket-troll,.thicket-gnome) .actor-body>img{translate:0 0!important;transform:none!important;rotate:0deg!important;object-position:center top!important;transition:none!important}
#outside-world .thicket-raven .actor-body>img{position:absolute;left:32.575758%;top:8.77193%;width:59.090909%;height:85.964912%;scale:none!important;transform:rotate(-16deg) scaleX(-1)!important;transform-origin:50% 100%;filter:brightness(.68) saturate(.88)!important}
#outside-world .thicket-troll .actor-body>img{position:absolute;left:12.5%;top:15%;width:56.25%;height:71.875%;scale:none!important;transform:rotate(20deg)!important;transform-origin:50% 100%;filter:brightness(.68) saturate(.88)!important}
#outside-world .thicket-gnome .actor-body>img{position:absolute;left:17.5%;top:17.5%;width:45%;height:65%;scale:none!important;transform:rotate(22deg)!important;transform-origin:50% 100%;filter:brightness(.74) saturate(.88)!important}
#outside-world :is(.thicket-raven,.thicket-troll,.thicket-gnome)>.natural-habitat-cover{clip-path:none!important;mask-mode:luminance;mask-repeat:no-repeat;mask-size:100% 100%;filter:none!important;pointer-events:none!important}
#outside-world .thicket-raven>.natural-habitat-cover{mask-image:url(#legend-raven-mask-v121)!important;-webkit-mask-image:url(#legend-raven-mask-v121)!important}
#outside-world .thicket-troll>.natural-habitat-cover{mask-image:url(#legend-troll-mask-v121)!important;-webkit-mask-image:url(#legend-troll-mask-v121)!important}
#outside-world .thicket-gnome>.natural-habitat-cover{mask-image:url(#legend-gnome-mask-v121)!important;-webkit-mask-image:url(#legend-gnome-mask-v121)!important}

/* grounded-habitats-v12.2.css */
/* Preview-only v12.2. Load AFTER all v12.1 habitat CSS. Badger is untouched.
   Source sprites are complete and opaque. Only real foreground objects have masks. */
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome){overflow:visible;clip-path:none!important;mask:none!important;-webkit-mask:none!important}
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome)>.world-friend{--actor-body-width:100%;--actor-body-height:100%;inset:0;left:0;top:0;width:100%;height:100%;min-width:0;min-height:0;overflow:visible;opacity:1!important;filter:none!important;transform:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;touch-action:manipulation}
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome) .actor-body{left:0;top:0;bottom:auto;width:100%;height:100%;z-index:1;opacity:1!important;overflow:visible;transform:none!important;translate:none!important;rotate:0deg!important;filter:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;will-change:auto}
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome) .actor-body>img{position:absolute;display:block;max-width:none;object-fit:contain;object-position:center top!important;opacity:1!important;transform:none!important;scale:1!important;translate:0 0!important;rotate:0deg!important;transition:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important}
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome)>.world-friend:before,
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome):after{display:none!important}
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome)>.natural-habitat-cover{display:block;z-index:2;opacity:1!important;filter:none!important;clip-path:none!important;mask-mode:luminance;mask-repeat:no-repeat;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;-webkit-mask-size:100% 100%;pointer-events:none!important}
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome)>.thicket-branch{display:block!important;position:absolute;z-index:3;right:auto;bottom:auto;height:auto;aspect-ratio:3/2;opacity:1!important;background:none!important;filter:none!important;rotate:0deg!important;scale:1!important;transform-origin:48% 91%;transition:none!important;pointer-events:none!important}
#outside-world :is(.thicket-mouse,.thicket-troll,.thicket-gnome)>.thicket-branch>i{position:absolute;display:block;inset:0;background:url('assets/trail-v11/fern-fringe-v11.webp') center/100% 100% no-repeat;opacity:1!important;mask:none!important;-webkit-mask:none!important;filter:none!important;rotate:0deg!important;scale:1!important;pointer-events:none!important}
#outside-world .thicket-mouse{--habitat-x:0.213541666667!important;--habitat-y:0.541992187500!important;--habitat-w:0.067708333333!important;--habitat-h:0.117187500000!important}
#outside-world .thicket-mouse .actor-body>img{left:1.923076923%;top:7.500000000%;width:84.615384615%;height:88.333333333%;filter:brightness(0.82) saturate(0.9)!important}
#outside-world .thicket-mouse>.natural-habitat-cover{mask-image:url(#grounded-mouse-wood-front-v122)!important;-webkit-mask-image:url(#grounded-mouse-wood-front-v122)!important}
#outside-world .thicket-mouse>.thicket-branch{left:-10.576923077%;top:58.333333333%;width:115.384615385%}
#outside-world .thicket-mouse>.thicket-branch>i{scale:1 1!important}
#outside-world .thicket-troll{--habitat-x:0.207031250000!important;--habitat-y:0.263671875000!important;--habitat-w:0.072916666667!important;--habitat-h:0.076171875000!important}
#outside-world .thicket-troll .actor-body>img{left:10.714285714%;top:10.256410256%;width:83.928571429%;height:155.128205128%;filter:brightness(0.82) saturate(0.9)!important}
#outside-world .thicket-troll>.natural-habitat-cover{mask-image:url(#grounded-troll-stone-front-v122)!important;-webkit-mask-image:url(#grounded-troll-stone-front-v122)!important}
#outside-world .thicket-troll>.thicket-branch{left:-2.678571429%;top:67.948717949%;width:135.714285714%}
#outside-world .thicket-troll>.thicket-branch>i{scale:-1 1!important}
#outside-world .thicket-gnome{--habitat-x:0.679687500000!important;--habitat-y:0.257812500000!important;--habitat-w:0.069010416667!important;--habitat-h:0.087890625000!important}
#outside-world .thicket-gnome .actor-body>img{left:11.320754717%;top:6.666666667%;width:81.132075472%;height:123.333333333%;filter:brightness(0.9) saturate(0.94)!important}
#outside-world .thicket-gnome>.natural-habitat-cover{mask-image:url(#grounded-gnome-flower-front-v122)!important;-webkit-mask-image:url(#grounded-gnome-flower-front-v122)!important}
#outside-world .thicket-gnome>.thicket-branch{left:1.886792453%;top:65.555555556%;width:135.849056604%}
#outside-world .thicket-gnome>.thicket-branch>i{scale:1 1!important}
/* Ground contact only: soften the last 12% of the Troll/Gnome fern root bases.
   The upper 88% stays fully opaque, including the fronds covering both boots. */
#outside-world :is(.thicket-troll,.thicket-gnome)>.thicket-branch>i{
  mask-image:linear-gradient(to bottom,#000 0 88%,#000b 93%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(to bottom,#000 0 88%,#000b 93%,transparent 100%)!important;
  mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;
  mask-size:100% 100%;-webkit-mask-size:100% 100%;
}

/* bird-habitats-v12.2.css */
/* Actual wood and leaves are in front of complete, opaque bird sprites.
   Source geometry is 1536 x 1024. The hit area can grow independently of art. */
#outside-world .bird-habitat-v122{isolation:isolate;overflow:visible;opacity:1!important}
#outside-world .bird-habitat-v122>.world-friend{position:absolute;inset:auto;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);min-width:44px;min-height:44px;transform:translate(-50%,-50%)!important;translate:none!important;rotate:0deg!important;opacity:1!important;filter:none!important;overflow:visible;--actor-body-width:100%;--actor-body-height:100%;z-index:1}
#outside-world .bird-habitat-v122 .actor-body{position:absolute;left:50%!important;bottom:50%!important;top:auto!important;width:calc(var(--habitat-w)*var(--world-w))!important;height:calc(var(--habitat-h)*var(--world-h))!important;transform:translate(-50%,50%)!important;translate:none!important;rotate:0deg!important;overflow:visible;opacity:1!important;will-change:auto}
#outside-world .bird-habitat-v122 .actor-body>img{position:absolute;object-fit:fill!important;object-position:center!important;translate:none!important;transform:none!important;scale:none!important;rotate:0deg!important;opacity:1!important;transition:none!important;animation:none!important;mask:none!important;clip-path:none!important;transform-origin:center!important}
#outside-world .bird-habitat-v122.thicket-owl .actor-body>img{left:18.75%;top:15.7142857143%;width:56.25%;height:57.9476861167%;filter:brightness(.78) saturate(.84)!important}
#outside-world .bird-habitat-v122.thicket-raven .actor-body>img{left:15.7894736842%;top:15.8536585366%;width:65.7894736842%;height:68.7049124012%;filter:brightness(.76) saturate(.85)!important}
#outside-world .bird-habitat-v122>.bird-canopy-objects{position:absolute;z-index:2;left:calc(-1*var(--habitat-x)*var(--world-w));top:calc(-1*var(--habitat-y)*var(--world-h));width:var(--world-w);height:var(--world-h);max-width:none;overflow:visible;opacity:1!important;pointer-events:none!important;filter:none!important}
#outside-world .bird-habitat-v122>.bird-canopy-objects *{pointer-events:none!important}
#outside-world .bird-habitat-v122>.natural-habitat-cover,#outside-world .bird-habitat-v122>.thicket-branch,#outside-world .bird-habitat-v122:after{display:none!important}
#outside-world .bird-habitat-v122:focus-within:before{inset:-3px;z-index:3;pointer-events:none}
#outside-world .bird-habitat-v122>.world-friend:focus-visible{outline:2px dashed #ffe49b;outline-offset:3px;border-radius:35%}
#outside-world .bird-habitat-v122>[data-discovery-caption]{top:100%;bottom:auto;left:50%;translate:-50% 0;z-index:4}

/* wayfinding-v12.2.css */
/* v12.2 preview only. Load after wayfinding-v12.1.css.
   Coordinates refer to the unchanged 1536 x 1024 forest panorama. */
#outside-world > #journey-next.path-entry {
  --waymarker-foot:58%;
  left:42.5%;
  top:calc(var(--waymarker-foot) - 150px);
  bottom:auto;
  width:205px;
  height:60px;
  min-width:44px;
  min-height:60px;
  padding:9px 32px 9px 13px;
  font-size:19px!important;
  line-height:1.12!important;
  translate:-50% 0;
  transform:none;
  pointer-events:auto!important;
}
#outside-world > #journey-next.path-entry::before {
  content:"\2192";
  right:11px;
  font-size:21px;
}
#outside-world > #journey-next.path-entry::after,
#outside-world > #journey-next.path-entry:focus-visible::after {
  /* The 60px board + 90px stem end exactly at the left path verge. */
  left:50%;
  top:100%;
  width:84px;
  height:90px;
  background:
    linear-gradient(90deg,#65472f,#c39b61 39%,#a87d4e 73%,#64452d) center top / 20px 84px no-repeat,
    radial-gradient(ellipse,#263b2c85 0 10%,#263b2c3b 37%,transparent 72%) center bottom / 84px 12px no-repeat;
}
/* Preserve this source foot: the narrow-screen fork camera uses y=48.8%. */
#outside-world > #fork-signs {
  left:55%;
  top:48.8%;
  width:190px;
  gap:7px;
  padding-bottom:42px;
  translate:-50% -100%;
  transform:none;
}
#outside-world > #fork-signs::before {
  left:50%;
  width:20px;
  box-sizing:border-box;
  background:linear-gradient(90deg,#65462d,#c49b61 40%,#a57d4e 73%,#60432d);
  box-shadow:2px 1px 2px #203e2c40,inset 1px 0 #e0be8580;
}
#outside-world > #fork-signs button {
  position:relative;
  width:100%;
  min-width:44px;
  min-height:50px;
  padding:9px 12px;
  gap:9px;
  font-size:18px;
  line-height:1.12;
  overflow:visible;
  background:repeating-linear-gradient(2deg,transparent 0 6px,#92613518 7px,transparent 9px 13px),linear-gradient(100deg,#ba8b4d,#f5d994 17%,#eac780 89%,#b58a4e);
  border-color:#805c39;
  color:#422a3d;
  pointer-events:auto!important;
}
#outside-world > #fork-signs button + button {
  background:repeating-linear-gradient(-2deg,transparent 0 7px,#805a3516 8px,transparent 10px 15px),linear-gradient(100deg,#c29a5e,#f4dda5 17%,#eacb89 89%,#b98d52);
  border-color:#805c39;
  box-shadow:0 3px 0 #715034,inset 0 1px #fff4cf80,0 6px 8px #18372c45;
}
#outside-world > #fork-signs button > span {white-space:nowrap}
#outside-world > #fork-signs button > b {font-size:0;flex:0 0 17px;line-height:1;font-weight:400}
#outside-world > #fork-signs button > b::before {content:"\2190";font-size:22px}
#outside-world > #fork-signs button:first-child > b {order:-1}
#outside-world > #fork-signs button + button > b::before {content:"\2192"}
#outside-world > #fork-signs button:focus-visible {outline:3px dashed #ffebad;outline-offset:5px}
@media(max-width:600px) {
  #outside-world > #fork-signs {width:190px}
  #outside-world > #fork-signs button {font-size:18px;min-height:50px}
}

/* scenery-magic-v12.2.css */
/* Mount scenery-magic-v12.2.html directly inside #outside-world.
   These small lights follow the actual forest plate through the same camera.
   No new script, viewport overlay, pulse, flash or interactive element. */
#outside-world > .scenery-magic-v122,
#outside-world > .scenery-magic-v122 * {
  pointer-events:none!important;
  user-select:none;
}
#outside-world > .scenery-magic-v122 {
  position:absolute;
  z-index:2;
  inset:0;
  transform-style:preserve-3d;
}
.scenery-magic-v122 > .scenery-magic-site {
  --site-light:0;
  position:absolute;
  inset:0;
  transform-style:preserve-3d;
}
#journey-viewport[data-stop="fork"] .scenery-magic-site--birds,
#journey-viewport[data-stop="bridge"] .scenery-magic-site--bridge,
#journey-viewport[data-stop="garden"] .scenery-magic-site--garden {--site-light:1}
.scenery-magic-v122 .scenery-magic-mote {
  position:absolute;
  left:var(--mote-x);
  top:var(--mote-y);
  width:var(--mote-size,4px);
  height:var(--mote-size,4px);
  border-radius:50%;
  background:radial-gradient(circle,#fff9dd 0 22%,var(--mote-colour,#baf3e8) 36% 55%,transparent 75%);
  box-shadow:0 0 5px 1px var(--mote-colour,#baf3e8),0 0 13px 5px var(--mote-haze,#8ce7dc33);
  opacity:calc(var(--site-light) * var(--mote-strength,.72));
  transform:translateZ(var(--mote-z,8px));
  transition:opacity 1.4s ease;
  animation:scenery-magic-drift-v122 var(--mote-duration,27s) ease-in-out var(--mote-delay,0s) infinite alternate;
  animation-play-state:paused;
}
#journey-viewport[data-stop="fork"] .scenery-magic-site--birds .scenery-magic-mote,
#journey-viewport[data-stop="bridge"] .scenery-magic-site--bridge .scenery-magic-mote,
#journey-viewport[data-stop="garden"] .scenery-magic-site--garden .scenery-magic-mote {animation-play-state:running}
.scenery-magic-v122 .scenery-magic-site--birds {--mote-strength:.47;--mote-size:3px;--mote-haze:#a6e6e51c}
.scenery-magic-v122 .scenery-magic-site--garden {--mote-colour:#fff0ad;--mote-haze:#c1f4bf38;--mote-strength:.78}
.scenery-magic-v122 .scenery-magic-bank {
  position:absolute;
  left:var(--bank-x);
  top:var(--bank-y);
  width:var(--bank-width);
  height:var(--bank-height);
  border-radius:50%;
  background:radial-gradient(ellipse,#9df1df36,#85e7e91c 40%,transparent 72%);
  opacity:calc(var(--site-light) * .75);
  transform:translateZ(3px) rotate(var(--bank-turn,-6deg));
  transition:opacity 1.4s ease;
}
.scenery-magic-v122 .scenery-magic-site--garden .scenery-magic-bank {
  background:radial-gradient(ellipse,#fff0ae3b,#b1f0cb20 40%,transparent 72%);
}
/* Existing distant glimmers and wind remain. The local bank lights add depth
   without reintroducing the old actor-face halos removed by v12.2 habitats. */
@keyframes scenery-magic-drift-v122 {
  from {translate:-1px 1px}
  to {translate:3px -5px}
}
#journey-app[data-motion="still"] .scenery-magic-v122 .scenery-magic-mote {
  animation:none!important;
  translate:none!important;
  transition:none!important;
}
#journey-app[data-motion="still"] .scenery-magic-v122 .scenery-magic-bank {transition:none!important}
@media(prefers-reduced-motion:reduce) {
  .scenery-magic-v122 .scenery-magic-mote {animation:none!important;translate:none!important;transition:none!important}
  .scenery-magic-v122 .scenery-magic-bank {transition:none!important}
}

/* journey-refinements-v12.2.css */
/* Visited-history control belongs to the header, not the path hit area. */
.workbook-directions{display:flex;align-items:center;justify-content:flex-start;gap:10px}
.site-back{min-width:54px;min-height:44px;padding:9px 12px;border:2px solid #c79b4c;border-radius:16px;background:#fff4d7;color:#442e53;font-family:inherit;font-weight:700;font-size:16px;line-height:1.2;box-shadow:0 3px 0 #513a3755;cursor:pointer;pointer-events:auto}
.site-back:disabled{opacity:.42;cursor:default;box-shadow:none}
.site-back:focus-visible{outline:3px solid #6be3e2;outline-offset:3px}
@media(max-width:600px){.site-back{min-width:44px;padding:8px;font-size:13px}.workbook-directions{gap:6px}#quest-pulldown{flex:1 1 0;min-width:0;width:auto;max-width:none}.quest-menu-toggle{padding-inline:10px}.journey-header{gap:6px}}
@media(max-width:600px){#journey-viewport[data-stop="fork"]:is([data-look="left"],[data-look="right"]){background:#16392f url('assets/trail-v11/trail-panorama-v11.webp') center top/cover no-repeat}}
@media(max-width:600px){#journey-app:has(#journey-viewport[data-stop="fork"]:is([data-look="left"],[data-look="right"])) .journey-header{background:linear-gradient(#173c31 0 65%,#173c31e6 75%,#173c3166 92%,transparent)}}

/* troll-rocks-v12.3.css */
/* Troll only: the complete opaque actor stays at v12.2 geometry. The real mossy
   rock/bank cluster sits in front of his waist and boots below the bridge. */
#outside-world .thicket-troll>.thicket-branch{display:none!important}
#outside-world .thicket-troll>.troll-rocks-v123{
  position:absolute;
  display:block;
  left:calc(-1*var(--habitat-x)*var(--world-w));
  top:calc(-1*var(--habitat-y)*var(--world-h));
  width:var(--world-w);
  height:var(--world-h);
  max-width:none;
  overflow:visible;
  z-index:3;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  translate:none!important;
  rotate:0deg!important;
  clip-path:none!important;
  mask:none!important;
  -webkit-mask:none!important;
  transition:none!important;
  animation:none!important;
  pointer-events:none!important;
  user-select:none;
}
#outside-world .thicket-troll>.troll-rocks-v123 *{pointer-events:none!important}

/* scanlife-v12.5.css */
/* One patio entry. Its development sticker is visible without opening a menu. */
.scanlife-entry-v125{margin-top:12px;pointer-events:auto}
.scanlife-open-v125{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;min-height:48px;max-width:100%;padding:8px 12px;border:1px solid #754d5f;border-radius:10px 13px 9px 12px;background:linear-gradient(#67435c,#4b3049);color:#fff3d8;box-shadow:0 3px 0 #362738,0 4px 7px #34223626;pointer-events:auto}
.scanlife-label-v125{font:400 17px/1.3 "Quest Display","Trebuchet MS",sans-serif}
.scanlife-badge-v125{display:inline-block;padding:5px 8px;border:1px dashed #a97634;border-radius:5px 8px 5px 7px;background:#ffe5a1;color:#593a32;font:700 10px/1.25 "Segoe UI",Arial,sans-serif;transform:rotate(-3deg);box-shadow:0 1px 2px #291b3326}
.scanlife-open-v125:hover{background:linear-gradient(#76516a,#59394f)}
.scanlife-open-v125:focus-visible,.scanlife-close-v125:focus-visible{outline:3px solid #a42e68;outline-offset:4px}
#journey-viewport:not([data-stop="glade"]) .scanlife-entry-v125{display:none}
.scanlife-concept-v125{position:fixed;inset:0;width:min(440px,calc(100% - 32px));max-width:440px;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #a78359;border-radius:16px;background:#fff7e5;color:#442b46;overflow:auto;overscroll-behavior:contain;text-align:left;pointer-events:auto;box-shadow:0 22px 70px #21112766}
.scanlife-concept-v125::backdrop{background:#211127a6;backdrop-filter:blur(3px)}
.scanlife-concept-body-v125{padding:27px}
.scanlife-concept-v125 h2{margin:0 0 14px;font:400 30px/1.1 "Quest Display","Trebuchet MS",sans-serif;letter-spacing:0}
.scanlife-concept-v125 #scanlife-copy-v125{margin:0 0 23px;font:400 16px/1.6 "Segoe UI",Arial,sans-serif;max-width:none}
.scanlife-close-v125{min-height:44px;padding:10px 16px;border:1px solid #59394e;border-radius:10px;background:#493047;color:#fff8e8;font:700 13px/1.4 "Segoe UI",Arial,sans-serif;pointer-events:auto}
.scanlife-close-v125:hover{background:#653c5a}
@media(max-width:600px){.scanlife-entry-v125{margin-top:10px}.scanlife-open-v125{gap:8px;padding:7px 10px}.scanlife-label-v125{font-size:15px}.scanlife-badge-v125{font-size:10px}.scanlife-concept-body-v125{padding:23px}.scanlife-concept-v125 h2{font-size:27px}.scanlife-concept-v125 #scanlife-copy-v125{font-size:15px}}

/* annotations-v12.3.css */
/* New physical foreground mushrooms, not a mask or transparency on Gnome. */
#outside-world .thicket-gnome>.thicket-branch{display:none!important}
.thicket-gnome>.gnome-mushrooms-v123{position:absolute;left:1.886792453%;top:65.555555556%;width:135.849056604%;aspect-ratio:3/2;z-index:3;pointer-events:none!important}
.gnome-mushrooms-v123>img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;pointer-events:none!important}
.gnome-mushrooms-v123::before{content:"";position:absolute;left:8%;right:4%;bottom:5%;height:9%;z-index:-1;background:radial-gradient(ellipse,#203c2466,transparent 72%);pointer-events:none!important}
/* A quiet, independently timed glint on existing source-anchored lights.
   Each cycle spends most of its time resting; no new particle emitter. */
.scenery-magic-mote::after{content:"";position:absolute;inset:-3px;background:linear-gradient(90deg,transparent 35%,#fffbd6 48% 52%,transparent 65%),linear-gradient(transparent 35%,#fffbd6 48% 52%,transparent 65%);opacity:0;rotate:var(--fleck-turn,0deg);animation:annotation-fleck-v123 var(--fleck-duration,14s) ease-in-out var(--fleck-delay,0s) infinite;animation-play-state:paused;pointer-events:none!important}
#journey-viewport[data-stop="fork"] .scenery-magic-site--birds .scenery-magic-mote::after,#journey-viewport[data-stop="bridge"] .scenery-magic-site--bridge .scenery-magic-mote::after,#journey-viewport[data-stop="garden"] .scenery-magic-site--garden .scenery-magic-mote::after{animation-play-state:running}
@keyframes annotation-fleck-v123{0%,60%,100%{opacity:0;scale:.65}69%,78%{opacity:calc(var(--site-light)*.9);scale:1}}
#journey-app[data-motion="still"] .scenery-magic-mote::after{animation:none!important;opacity:0!important}
@media(prefers-reduced-motion:reduce){.scenery-magic-mote::after{animation:none!important;opacity:0!important}}

/* mouse-conceal-v12.4.css */
/* Mouse only. Full opaque sprite leans out from BEHIND the actual native log.
   No copied/moved scenery, fern mound, actor clipping, alpha change or JS.
   Load after all v12.2/v12.3 habitat CSS. Source coordinate space: 1536×1024. */
#outside-world .thicket-mouse>.thicket-branch{display:none!important}
#outside-world .thicket-mouse>.world-friend{
  position:absolute;inset:auto;left:calc(.009765625*var(--world-w));
  top:calc(.0400390625*var(--world-h));
  width:max(44px,calc(.03125*var(--world-w)));
  height:max(44px,calc(.046875*var(--world-h)));
  min-width:44px;min-height:44px;transform:translate(-50%,-50%)!important;
  translate:none!important;rotate:0deg!important;opacity:1!important;
  filter:none!important;overflow:visible;clip-path:none!important;mask:none!important;
  -webkit-mask:none!important;z-index:1;pointer-events:auto!important;touch-action:manipulation;
}
#outside-world .thicket-mouse .actor-body{
  position:absolute;left:calc(50% - .056640625*var(--world-w))!important;
  top:calc(50% - .03125*var(--world-h))!important;bottom:auto!important;
  width:calc(.0572916666667*var(--world-w))!important;
  height:calc(.103515625*var(--world-h))!important;
  transform:rotate(13deg)!important;transform-origin:50% 100%!important;
  translate:none!important;rotate:0deg!important;opacity:1!important;
  overflow:visible;clip-path:none!important;mask:none!important;-webkit-mask:none!important;
  animation:none!important;transition:none!important;pointer-events:none!important;
}
#outside-world .thicket-mouse .actor-body>img{
  position:absolute;left:0!important;top:0!important;width:100%!important;height:100%!important;
  object-fit:fill!important;object-position:center!important;opacity:1!important;
  transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;
  filter:brightness(.82) saturate(.9)!important;
  clip-path:none!important;mask:none!important;-webkit-mask:none!important;
  transition:none!important;animation:none!important;pointer-events:none!important;
}
#outside-world .thicket-mouse>.mouse-native-log-v124{
  position:absolute;display:block;left:calc(-1*var(--habitat-x)*var(--world-w));
  top:calc(-1*var(--habitat-y)*var(--world-h));width:var(--world-w);height:var(--world-h);
  max-width:none;overflow:visible;z-index:3;opacity:1!important;filter:none!important;
  transform:none!important;translate:none!important;rotate:0deg!important;
  clip-path:none!important;mask:none!important;-webkit-mask:none!important;
  pointer-events:none!important;user-select:none;transition:none!important;animation:none!important;
}
#outside-world .thicket-mouse>.mouse-native-log-v124 *{pointer-events:none!important}
/* Match the independent compact native button with an unobscured focus ring. */
#outside-world .thicket-mouse:before{display:none!important}
#outside-world .thicket-mouse:focus-within:before{
  content:"";display:block!important;position:absolute;inset:auto;
  left:calc(.009765625*var(--world-w));top:calc(.0400390625*var(--world-h));
  width:max(44px,calc(.03125*var(--world-w)));height:max(44px,calc(.046875*var(--world-h)));
  transform:translate(-50%,-50%)!important;border:2px dashed #ffe49b;border-radius:35%;
  box-sizing:border-box;background:none!important;z-index:4;pointer-events:none!important;
  opacity:1!important;filter:none!important;animation:none!important;transition:none!important;
}
#outside-world .thicket-mouse>.world-friend:focus-visible{outline:none}
#outside-world .thicket-mouse>[data-discovery-caption]{
  top:calc(.068359375*var(--world-h));bottom:auto;
  left:calc(.009765625*var(--world-w));translate:-50% 0;z-index:4;
}
/* All states are static. Native click/focus/touch still update discovery and caption. */
@media(prefers-reduced-motion:reduce){
  #outside-world .thicket-mouse,#outside-world .thicket-mouse *{animation:none!important;transition:none!important}
}

/* bird-conceal-v12.4.css */
/* v12.4: source-native wood conceals more of both complete, opaque birds.
   The source plate, object layers and sprites share the same world coordinates.
   The native 44px control is centred on the remaining recognizable glimpse. */
#outside-world .bird-conceal-v124{isolation:isolate;overflow:visible;opacity:1!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important}
#outside-world .bird-conceal-v124>.world-friend{position:absolute;inset:auto;left:calc((var(--bird-hit-u) - var(--habitat-x))*var(--world-w));top:calc((var(--bird-hit-v) - var(--habitat-y))*var(--world-h));width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;max-height:44px!important;padding:0;border:0;background:none;transform:translate(-50%,-50%)!important;translate:none!important;rotate:0deg!important;scale:1!important;opacity:1!important;filter:none!important;overflow:visible;touch-action:manipulation;z-index:1;pointer-events:auto!important}
#outside-world .bird-conceal-v124 .actor-body{position:absolute;left:calc(50% + (var(--bird-sprite-u) - var(--bird-hit-u))*var(--world-w))!important;top:calc(50% + (var(--bird-sprite-v) - var(--bird-hit-v))*var(--world-h))!important;right:auto!important;bottom:auto!important;width:calc(var(--bird-sprite-w)*var(--world-w))!important;height:calc(var(--bird-sprite-h)*var(--world-h))!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;overflow:visible;opacity:1!important;filter:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;pointer-events:none!important;will-change:auto}
#outside-world .bird-conceal-v124 .actor-body>img{position:absolute;display:block;left:0!important;top:0!important;width:100%!important;height:100%!important;max-width:none;max-height:none;object-fit:fill!important;object-position:center!important;translate:none!important;transform:none!important;scale:1!important;rotate:0deg!important;opacity:1!important;transition:none!important;animation:none!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;pointer-events:none!important}
#outside-world .bird-conceal-v124.thicket-owl .actor-body>img{filter:brightness(.78) saturate(.84)!important}
#outside-world .bird-conceal-v124.thicket-raven .actor-body>img{filter:brightness(.76) saturate(.85)!important}
#outside-world .bird-conceal-v124>.bird-conceal-objects{position:absolute;z-index:2;left:calc(-1*var(--habitat-x)*var(--world-w));top:calc(-1*var(--habitat-y)*var(--world-h));width:var(--world-w);height:var(--world-h);max-width:none;overflow:visible;opacity:1!important;pointer-events:none!important;filter:none!important;transform:none!important;translate:none!important;transition:none!important;animation:none!important}
#outside-world .bird-conceal-v124>.bird-conceal-objects *{pointer-events:none!important}
#outside-world .bird-conceal-v124>.natural-habitat-cover,#outside-world .bird-conceal-v124>.thicket-branch,#outside-world .bird-conceal-v124:after,#outside-world .bird-conceal-v124:before,#outside-world .bird-conceal-v124>.world-friend:before,#outside-world .bird-conceal-v124 .actor-body:before{display:none!important}
#outside-world .bird-conceal-v124>.world-friend:is(:hover,:focus-visible,[aria-pressed="true"]){outline:2px dashed #ffe49b!important;outline-offset:3px;border-radius:35%}
#outside-world .bird-conceal-v124>[data-discovery-caption]{top:100%;bottom:auto;left:50%;translate:-50% 0;z-index:4}
/* Feedback remains static for keyboard, touch, still mode and reduced motion.
   Foreground wood and leaf objects never disappear or move on discovery. */
#journey-app[data-motion="still"] .bird-conceal-v124 *,#journey-viewport.foliage-static .bird-conceal-v124 *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){#outside-world .bird-conceal-v124 *{animation:none!important;transition:none!important}}

/* legend-conceal-v12.4.css */
/* Load last. Full actor bodies use independent source/world coordinates. */
#outside-world .thicket-troll{--legend-hit-u:.229166666666667;--legend-hit-v:.2900390625;--legend-sprite-u:.20703125;--legend-sprite-v:.271484375;--legend-sprite-w:.0390625;--legend-sprite-h:.0751953125}
#outside-world .thicket-gnome{--legend-hit-u:.701171875;--legend-hit-v:.2890625;--legend-sprite-u:.671875;--legend-sprite-v:.2685546875;--legend-sprite-w:.044270833333333;--legend-sprite-h:.0859375}
#outside-world .thicket-troll>.troll-rocks-v123,
#outside-world .thicket-gnome>.gnome-mushrooms-v123{display:none!important}
#outside-world :is(.thicket-troll,.thicket-gnome)>.world-friend{position:absolute;inset:auto;left:calc((var(--legend-hit-u) - var(--habitat-x))*var(--world-w));top:calc((var(--legend-hit-v) - var(--habitat-y))*var(--world-h));width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;max-height:44px!important;padding:0;border:0;background:none;transform:translate(-50%,-50%)!important;translate:none!important;rotate:0deg!important;scale:1!important;opacity:1!important;filter:none!important;overflow:visible;touch-action:manipulation;z-index:1;pointer-events:auto!important}
#outside-world :is(.thicket-troll,.thicket-gnome) .actor-body{position:absolute;left:calc(50% + (var(--legend-sprite-u) - var(--legend-hit-u))*var(--world-w))!important;top:calc(50% + (var(--legend-sprite-v) - var(--legend-hit-v))*var(--world-h))!important;right:auto!important;bottom:auto!important;width:calc(var(--legend-sprite-w)*var(--world-w))!important;height:calc(var(--legend-sprite-h)*var(--world-h))!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;overflow:visible;opacity:1!important;filter:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;pointer-events:none!important;will-change:auto}
#outside-world :is(.thicket-troll,.thicket-gnome) .actor-body>img{position:absolute;display:block;left:0!important;top:0!important;width:100%!important;height:100%!important;max-width:none;max-height:none;object-fit:contain!important;object-position:center top!important;translate:none!important;transform:none!important;scale:1!important;rotate:0deg!important;opacity:1!important;transition:none!important;animation:none!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;pointer-events:none!important}
#outside-world .thicket-troll .actor-body>img{filter:brightness(.82) saturate(.9)!important}
#outside-world .thicket-gnome .actor-body>img{filter:brightness(.9) saturate(.94)!important}
#outside-world .thicket-troll>.troll-rocks-v124{position:absolute;display:block;left:calc(-1*var(--habitat-x)*var(--world-w));top:calc(-1*var(--habitat-y)*var(--world-h));width:var(--world-w);height:var(--world-h);max-width:none;overflow:visible;z-index:3;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transition:none!important;animation:none!important;pointer-events:none!important;user-select:none}
#outside-world .thicket-troll>.troll-rocks-v124 *{pointer-events:none!important}
#outside-world .thicket-gnome>.gnome-mushrooms-v124{position:absolute;display:block;left:-34.905660377%;top:56.666666667%;width:98.113207547%;height:auto;aspect-ratio:3/2;z-index:3;opacity:1!important;transform-origin:52% 95%;transform:none;rotate:0deg;translate:none;transition:rotate .65s ease;pointer-events:none!important;user-select:none}
/* Only the last 2.77 source pixels of the rooted scenery meet the soil softly.
   This contact blend never touches the character or mushroom caps. */
#outside-world .gnome-mushrooms-v124>img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;opacity:1!important;filter:brightness(.66) saturate(.64);mask-image:linear-gradient(to bottom,#000 0 91%,transparent 95% 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0 91%,transparent 95% 100%);pointer-events:none!important}
#outside-world .gnome-mushrooms-v124::before{content:"";position:absolute;left:8%;right:7%;bottom:3.5%;height:9%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#14281f82,transparent 72%);filter:blur(.9px);pointer-events:none!important}
#outside-world .thicket-gnome:is(.is-near,.is-focused,.discovered)>.gnome-mushrooms-v124{rotate:-3deg}
/* Keyboard focus follows the compact native control, not its old broad thicket. */
#outside-world :is(.thicket-troll,.thicket-gnome):focus-within::before{display:none!important}
#outside-world :is(.thicket-troll,.thicket-gnome)>.world-friend:focus-visible{outline:2px dashed #ffe49b;outline-offset:3px;border-radius:40%}
#outside-world :is(.thicket-troll,.thicket-gnome)>[data-discovery-caption]{left:calc((var(--legend-hit-u) - var(--habitat-x))*var(--world-w));top:calc((var(--legend-hit-v) - var(--habitat-y))*var(--world-h) + 30px);bottom:auto;translate:-50% 0;z-index:9}
#journey-app[data-motion="still"] #outside-world .gnome-mushrooms-v124{transition:none!important;rotate:0deg!important}
@media(prefers-reduced-motion:reduce){#outside-world .gnome-mushrooms-v124{transition:none!important;rotate:0deg!important}}

/* workbook-entry-v12.5.css */
/* QR visitors arrive at the actual workbook, with a clear route to the shelf. */
.workbook-entry-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px}
.workbook-entry-nav[hidden]{display:none}
.workbook-entry-kicker{margin:0;color:#68435d;font-size:11px;font-weight:800;letter-spacing:.12em}
.workbook-entry-nav button{min-height:44px;padding:10px 16px;border:1px solid #694552;border-radius:8px 12px 9px 7px;background:#fff0bd;color:#493047;font:700 14px/1.4 "Segoe UI",sans-serif;box-shadow:0 2px 0 #976b4733}
.workbook-entry-nav button:hover{background:#ffe4a1}
.workbook-entry-nav button:focus-visible{outline:3px solid #a42e68;outline-offset:3px}
#catalogue-view[data-workbook-entry] .catalogue-intro,
#catalogue-view[data-workbook-entry] .catalogue-finder,
#catalogue-view[data-workbook-entry] .catalogue-shelf{display:none}
#catalogue-view[data-workbook-entry] .view-title{margin-bottom:18px}
#catalogue-view[data-workbook-entry] .quest-catalogue{padding-top:0}
#catalogue-view[data-workbook-entry] .catalogue-dossier{margin-top:0}
@media(max-width:600px){.workbook-entry-nav{gap:10px;align-items:flex-start}.workbook-entry-kicker{max-width:90px;line-height:1.5;padding-top:8px}.workbook-entry-nav button{font-size:12px;padding:10px 12px}}

/* scene-caption-v12.6.css */
/* Shared scene captions only: catalogue and page-viewer typography is untouched. */
#journey-viewport .journey-reading-dock{--caption-clearance:164px;--dock-extra:0px;width:min(400px,calc(100% - 32px));bottom:24px;gap:6px;pointer-events:none}
#journey-viewport .journey-reading-dock:has(>.trail-look-controls:not([hidden])){--dock-extra:50px}
#journey-viewport .journey-reading-dock:has(>.scanlife-entry-v125:not([hidden])){--dock-extra:54px}
#journey-viewport .journey-reading-dock>.journey-story{grid-row:auto;min-width:0;width:100%;padding:7px 10px;text-align:left;filter:drop-shadow(0 3px 5px #142e2a44);max-height:max(64px,calc(100dvh - var(--caption-clearance) - var(--dock-extra)));overflow:auto;overscroll-behavior:contain;pointer-events:auto;border-radius:11px}
#journey-viewport .journey-story #journey-live{position:absolute!important;top:0;left:0;width:1px;height:1px;min-height:0!important;margin:0!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#journey-viewport .journey-story:before{border-radius:11px;background:linear-gradient(105deg,#f2d59f,#fff4d7 12% 88%,#eacb92);box-shadow:inset 0 2px 3px #fff9d888;position:fixed;inset:0}
.scene-caption-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px}
#journey-viewport .journey-story h1{flex:1;min-width:0;font:400 1.3125rem/1.15 "Quest Display","Trebuchet MS",sans-serif;text-transform:none;letter-spacing:0;margin:0;color:#493047;-webkit-text-stroke:0;text-shadow:none;filter:none;outline-offset:3px}
#scene-details-toggle{flex:0 0 auto;min-width:44px;min-height:44px;padding:6px 9px;border:1px solid #a78658;border-radius:7px;background:#fff8e7;color:#51354a;font:700 .875rem/1.2 "Segoe UI",sans-serif;pointer-events:auto}
#scene-details-toggle:hover{background:#ffe5ac}
#scene-details-toggle:focus-visible,.scene-details:focus-visible{outline:3px solid #a42e68;outline-offset:2px}
.scene-details{padding:8px 3px 5px;border-top:1px solid #bda07666;margin-top:5px;pointer-events:auto}
.scene-details[hidden]{display:none}
#journey-viewport .scene-details .journey-chapter{font-size:.6875rem;line-height:1.5;letter-spacing:.07em;margin:0 0 6px;color:#795737}
#journey-viewport .scene-details #journey-copy{font:400 .9375rem/1.5 "Segoe UI",Arial,sans-serif;margin:0;max-width:none;color:#503d43}
#journey-viewport .journey-reading-dock>.scanlife-entry-v125{grid-row:auto;justify-self:center;margin:0;max-width:100%;pointer-events:auto}
#journey-viewport .journey-reading-dock>.trail-look-controls{grid-row:auto;gap:6px}
#journey-viewport .trail-look-controls>button{min-height:44px}
@media(max-width:1050px){#journey-viewport .journey-reading-dock,#journey-viewport:not([data-stop=glade]) .journey-reading-dock{bottom:70px;width:min(400px,calc(100% - 32px));gap:6px}}
@media(max-width:600px){#journey-viewport .journey-reading-dock,#journey-viewport:not([data-stop=glade]) .journey-reading-dock{bottom:66px;width:calc(100% - 32px)}#journey-viewport .journey-story h1{font-size:1.1875rem}.scene-caption-heading{gap:7px}}
@media(max-height:540px) and (min-width:601px){#journey-viewport .journey-reading-dock,#journey-viewport:not([data-stop=glade]) .journey-reading-dock{bottom:62px;width:min(380px,calc(100% - 180px));--caption-clearance:164px}#journey-viewport .journey-story h1{font-size:1.1875rem}}
/* Keep the physical fork sign clear. Its world position stays fixed when Info opens. */
#journey-viewport[data-stop=fork] .journey-story{max-height:114px}
@media(min-width:601px) and (max-height:780px){#journey-viewport[data-stop=fork] .journey-reading-dock{left:18px;translate:none;width:clamp(180px,calc(50vw - 130px),280px);bottom:104px}}
@media(prefers-reduced-motion:reduce){.scene-details{scroll-behavior:auto}}

/* village-world-v12.7.css */
/* Reuse one source-aligned Village plate for hub, crossing and garden. */
#journey-viewport:is([data-stop=glade],[data-stop=village],[data-stop=bridge],[data-stop=garden]){--cam-z:var(--entry-z,-90px);--trail-magic:0;--forest-depth:-1900px}
#journey-viewport[data-stop=trail]{--cam-z:2050px;--trail-magic:.08}
#journey-viewport[data-stop=fork]{--cam-z:2350px;--trail-magic:.5}
#journey-viewport .scenery-glade{transform:none!important}
#journey-viewport .scenery-glade>.patio-cutout{visibility:hidden!important}
#journey-viewport[data-transit=outward] #scene-camera{animation:none!important}
#journey-viewport[data-transit=outward] .scenery-glade{opacity:0!important;transition:opacity 1.2s .45s!important}
#journey-viewport .outside-world{transition:transform 2.2s cubic-bezier(.2,.64,.13,1),opacity .9s;}
#journey-viewport:is([data-stop=glade],[data-stop=village],[data-stop=bridge],[data-stop=garden]) .outside-world{opacity:0!important;visibility:hidden;pointer-events:none!important}
#journey-viewport:is([data-stop=trail],[data-stop=fork]) .outside-world{opacity:1;visibility:visible}
.hub-world-v127{position:absolute;inset:-14% -16%;z-index:1;opacity:0;visibility:hidden;pointer-events:none!important;transition:opacity 1.2s,visibility 0s 1.2s;transform-style:flat}
.hub-world-v127>svg{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none!important}
#journey-viewport:is([data-stop=glade],[data-stop=village],[data-stop=bridge],[data-stop=garden]) .hub-world-v127,#journey-viewport[data-transit=outward] .hub-world-v127{opacity:1;visibility:visible;transition:opacity 1.2s,visibility 0s}
.hub-source-plane-v127{position:absolute;left:0;top:0;width:1536px;height:1024px;transform-origin:0 0;pointer-events:none!important}
/* The old generic character-label rule must never style a new sprite body. */
#hub-world-v127 .hub-character-habitat .actor-body{padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
.country-boundary-v127{position:absolute;left:516px;top:352px;width:255px;height:112px;perspective:400px;z-index:7;pointer-events:none!important;isolation:isolate}
.country-boundary-v127::before{content:"";position:absolute;left:5%;right:4%;top:76%;height:7%;background:radial-gradient(ellipse,#39412a55,transparent 72%);z-index:-1;pointer-events:none}
.country-fixed-v127{position:absolute;inset:0;width:100%;height:100%;max-width:none;z-index:3;pointer-events:none!important;user-select:none}
#scene-camera .country-gate-leaf-v127{position:absolute;display:block;left:var(--leaf-left);top:var(--leaf-top);width:var(--leaf-width);height:var(--leaf-height);min-width:0;min-height:0;max-width:none;z-index:2;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;transform-origin:var(--hinge-x,0%) var(--hinge-y,50%);transform:rotateY(0deg);transition:transform .85s cubic-bezier(.2,.65,.2,1);backface-visibility:hidden;pointer-events:auto!important;cursor:pointer}
.country-gate-leaf-v127>img{display:block;width:100%;height:100%;max-width:none;pointer-events:none!important;user-select:none}
.country-gate-leaf-v127:focus-visible{outline:3px dashed #fff0a8;outline-offset:5px}
#journey-viewport:is([data-gate=open],[data-gate=returning],[data-stop=bridge]) .country-gate-leaf-v127{transform:rotateY(-100deg)}
#journey-viewport:not(:is([data-stop=glade],[data-stop=village])) .country-gate-leaf-v127{pointer-events:none!important}
#journey-viewport:not([data-stop=glade]) .village-friends{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#journey-viewport:not([data-stop=glade]) .village-friends button{pointer-events:none!important}
#journey-viewport .hub-waypost{position:absolute;display:flex;flex-direction:column;gap:5px;width:170px;padding-bottom:56px;translate:-50% -100%;z-index:10;pointer-events:none!important;isolation:isolate;filter:drop-shadow(0 3px 3px #31452c44)}
.hub-waypost:not([hidden]){visibility:visible}
.hub-waypost[hidden]{display:none!important}
.hub-waypost::after{content:"";position:absolute;left:calc(50% - 9px);bottom:0;width:18px;height:calc(100% - 18px);z-index:-1;border:1px solid #674b30;background:linear-gradient(90deg,#6f5032,#c6a16b 42%,#987447 76%,#64482e);box-shadow:2px 1px 2px #2e3e2644}
.hub-waypost::before{content:"";position:absolute;left:25%;right:25%;bottom:-5px;height:12px;border-radius:50%;background:radial-gradient(ellipse,#203c2555,transparent 72%);z-index:-2}
#journey-viewport .hub-waypost>button{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;min-height:49px;padding:8px 10px;border:1px solid #7c582f;border-radius:4px 10px 6px 4px;background:repeating-linear-gradient(3deg,transparent 0 8px,#8f63331c 9px,transparent 11px 15px),linear-gradient(95deg,#c49958,#f5dc9d 15%,#e5c180 90%,#ad8145);color:#432b3c;font:400 17px/1.12 "Quest Display",sans-serif;box-shadow:0 3px 0 #82603b;rotate:-2deg;pointer-events:auto!important;touch-action:manipulation}
#journey-viewport .hub-waypost>button+button{rotate:2deg}
.hub-waypost>button:hover{filter:brightness(1.06)}
.hub-waypost>button:focus-visible{outline:3px solid #fff2ab;outline-offset:4px}
#journey-viewport .trail-look-controls:not([hidden]){display:grid}
#hub-source-plane-v127 .hub-world-finds>button{width:var(--hub-control-size,64px);height:var(--hub-control-size,64px);min-width:0;min-height:0;pointer-events:auto!important}
#hub-source-plane-v127 .quest-find-bridge{left:520px!important;top:475px!important;--find-angle:5deg}
#hub-source-plane-v127 .quest-find-garden{left:1182px!important;top:500px!important;--find-angle:-9deg}
#hub-source-plane-v127 .workbook-find-caption{font-size:var(--hub-label-size,16px)}
#hub-source-plane-v127 .workbook-find-art{filter:brightness(.92) saturate(.94)}
#outside-world .quest-find-trail{left:29%!important;top:67%!important}
#outside-world .quest-find-fork{left:60.5%!important;top:32.5%!important}
/* Road signs name routes; unreleased characters are never signposted. */
#outside-world>#journey-next{left:52%!important;top:calc(75% - 150px)!important;width:165px!important;font-size:17px!important;min-height:48px!important;height:auto!important}
#outside-world>#trail-village-return{position:absolute;left:52%;top:calc(75% - 92px);translate:-50% 0;width:165px;min-height:48px;padding:8px 10px;border:1px solid #7c582f;border-radius:5px;background:linear-gradient(95deg,#c49958,#f5dc9d 15%,#e5c180 90%,#ad8145);color:#432b3c;font:400 17px/1.12 "Quest Display",sans-serif;box-shadow:0 3px 0 #82603b;z-index:8;pointer-events:auto!important}
#outside-world>#trail-village-return{z-index:11}
#outside-world>#trail-village-return[hidden]{display:none!important}
#outside-world>#fork-signs{left:66%!important;top:35.2%!important;width:165px!important;padding-bottom:48px}
#outside-world>#fork-signs>button{min-height:46px!important;font-size:16px!important;padding:8px 10px!important}
#journey-viewport:is([data-stop=village],[data-stop=bridge],[data-stop=garden]) .journey-reading-dock{bottom:70px}
.hub-ambient-magic{position:absolute;inset:0;pointer-events:none!important}
.hub-magic-fleck{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff6c5;box-shadow:0 0 5px #ffe79488;opacity:0;animation:hub-fleck-v127 var(--duration,13s) var(--delay,0s) ease-in-out infinite;pointer-events:none!important}
#journey-viewport:not([data-stop=bridge]) .hub-magic-fleck[data-region=bridge],#journey-viewport:not([data-stop=garden]) .hub-magic-fleck[data-region=garden]{display:none}
@keyframes hub-fleck-v127{0%,62%,100%{opacity:0;translate:0 0}73%,86%{opacity:.52;translate:0 -3px}}
#journey-viewport[data-stop=bridge] .hub-magic-fleck{background:#d3f9ec;box-shadow:0 0 5px #8ce5dd66}
#journey-app[data-motion=still] .hub-magic-fleck{animation:none!important;opacity:.22}
#journey-app[data-motion=still] .hub-world-v127{transition:none!important}
#journey-app[data-motion=still] .country-gate-leaf-v127{transition:none!important}
@media(prefers-reduced-motion:reduce){.hub-magic-fleck{animation:none!important;opacity:.22}.hub-world-v127,.country-gate-leaf-v127{transition:none!important}}
@media(max-width:600px){#journey-viewport .hub-waypost{width:158px}#journey-viewport .hub-waypost>button{font-size:16px}#journey-viewport:is([data-stop=village],[data-stop=bridge],[data-stop=garden]) .journey-reading-dock{bottom:66px}}

/* troll-hub-v12.8.css */
/* Same canonical bridge, native left-bank boulder. The full Troll is behind it.
   All positions are fractions of the unchanged 1536×1024 hub coordinate plane. */
.hub-character-habitat[data-actor-habitat="troll"]{position:absolute!important;inset:0!important;left:0!important;top:0!important;width:var(--hub-w,100%)!important;height:var(--hub-h,100%)!important;max-width:none;max-height:none;z-index:4;isolation:isolate;overflow:visible!important;pointer-events:none!important;opacity:1!important;filter:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transform:none!important;translate:none!important;rotate:0deg!important}
.hub-character-habitat[data-actor-habitat="troll"]>.actor-body{position:absolute!important;inset:auto!important;left:calc(254/1536*100%)!important;top:calc(409/1024*100%)!important;width:calc(32/1536*100%)!important;height:calc(41/1024*100%)!important;max-width:none!important;max-height:none!important;z-index:1;display:block!important;overflow:visible!important;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;animation:none!important;transition:none!important;pointer-events:none!important}
.hub-character-habitat[data-actor-habitat="troll"]>.actor-body>img{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain!important;object-position:center top!important;opacity:1!important;filter:brightness(.82)!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;animation:none!important;transition:none!important;pointer-events:none!important}
.hub-character-habitat[data-actor-habitat="troll"]>.hub-troll-native-foreground{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;z-index:2;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;mask:none!important;-webkit-mask:none!important;pointer-events:none!important}
.hub-character-habitat[data-actor-habitat="troll"]::before,.hub-character-habitat[data-actor-habitat="troll"]::after,.hub-character-habitat[data-actor-habitat="troll"] .actor-body::before,.hub-character-habitat[data-actor-habitat="troll"] .actor-body::after{display:none!important;content:none!important}
.hub-character-habitat[data-actor-habitat="troll"] *{pointer-events:none!important}


/* gnome-hub-v12.8.css */
/* The full sprite and every cover share one unchanged 1536×1024 source plane. */
.hub-character-habitat[data-actor-habitat="gnome"]{position:absolute;left:0;top:0;width:var(--hub-w,1536px);height:var(--hub-h,1024px);max-width:none;overflow:visible;isolation:isolate;pointer-events:none!important;user-select:none}
.hub-character-habitat[data-actor-habitat="gnome"] .world-friend.actorimage{position:absolute;display:block;left:calc(var(--hub-w,1536px)*.818359375);top:calc(var(--hub-h,1024px)*.4013671875);right:auto;bottom:auto;width:calc(var(--hub-w,1536px)*.042317708333);height:calc(var(--hub-h,1024px)*.08203125);min-width:0!important;min-height:0!important;padding:0;border:0;margin:0;background:none;box-shadow:none;z-index:1;opacity:1!important;visibility:visible;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transition:none!important;animation:none!important;pointer-events:none!important}
.hub-character-habitat[data-actor-habitat="gnome"] .actor-body{position:absolute;display:block;inset:0;width:100%;height:100%;max-width:none;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transition:none!important;animation:none!important;pointer-events:none!important}
.hub-character-habitat[data-actor-habitat="gnome"] .actor-body>img{position:absolute;display:block;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:center top;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transition:none!important;animation:none!important;pointer-events:none!important}
.hub-character-habitat[data-actor-habitat="gnome"] .world-friend::before,.hub-character-habitat[data-actor-habitat="gnome"] .world-friend::after,.hub-character-habitat[data-actor-habitat="gnome"] .actor-body::before,.hub-character-habitat[data-actor-habitat="gnome"] .actor-body::after{display:none!important}
.hub-character-habitat[data-actor-habitat="gnome"]>.hub-gnome-native-flowers-v128,.hub-character-habitat[data-actor-habitat="gnome"]>.hub-gnome-root-leaves-v128{position:absolute;display:block;inset:0;width:100%;height:100%;max-width:none;overflow:visible;opacity:1;filter:none;transform:none;pointer-events:none!important;user-select:none}
.hub-character-habitat[data-actor-habitat="gnome"]>.hub-gnome-native-flowers-v128{z-index:2}
.hub-character-habitat[data-actor-habitat="gnome"]>.hub-gnome-root-leaves-v128{z-index:4}
.hub-character-habitat[data-actor-habitat="gnome"]>.hub-gnome-mushrooms-v128{position:absolute;display:block;left:calc(var(--hub-w,1536px)*.819010416667);top:calc(var(--hub-h,1024px)*.4228515625);width:calc(var(--hub-w,1536px)*.037760416667);height:calc(var(--hub-h,1024px)*.037760416667);max-width:none;z-index:3;opacity:1;transform:none;transition:none;animation:none;pointer-events:none!important}
.hub-gnome-mushrooms-v128>img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;opacity:1;filter:saturate(.84);transform:none;pointer-events:none!important}
.hub-character-habitat[data-actor-habitat="gnome"] svg *{pointer-events:none!important}

/* character-release-v12.7.css */
/* Unreleased artwork is environmental scenery, not an unlockable button.
   Geometry/positive foreground objects remain authored in their habitat modules. */
#scene-camera .is-unreleased,
#scene-camera .is-unreleased *{pointer-events:none!important;cursor:default!important}
#scene-camera .is-unreleased::before,
#scene-camera .is-unreleased::after,
#scene-camera .is-unreleased>.world-friend::before,
#scene-camera .is-unreleased>.world-friend::after{display:none!important;content:none!important;outline:none!important;box-shadow:none!important}
#scene-camera .is-unreleased [data-discovery-caption]{display:none!important}
#scene-camera .is-unreleased>.world-friend{opacity:1!important;outline:none!important;border:0!important;box-shadow:none!important;background:none!important;filter:none!important}
#scene-camera .is-unreleased .actor-body,
#scene-camera .is-unreleased .actor-body>img{opacity:1!important;animation:none!important;transition:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important}
#scene-camera .is-unreleased>.gnome-mushrooms-v124{rotate:0deg!important;transition:none!important}
#scene-camera .is-unreleased>.thicket-branch{transform:none!important;rotate:0deg!important;transition:none!important;animation:none!important}
/* The optional help-quest objects are separate buttons and keep their normal targets. */
/* Complete source sprites are placed farther behind EXACT native wood.
   Foreground images, clipping polygons, lighting and world coordinates are unchanged.
   Offline covered-alpha fractions: Mouse82.69%, Owl84.62%, Raven86.35%.
   Badger keeps the existing native-root benchmark. Troll/Gnome geometry is owned
   by the hub/bridge integration and must be still harder than these L3 glimpses. */
#scene-camera .is-unreleased.thicket-mouse .actor-body{left:calc(50% - .059244791666666664*var(--world-w))!important}
#scene-camera .is-unreleased.thicket-owl{--bird-sprite-u:.5166666666666667!important;--bird-sprite-v:.1220703125!important;--bird-sprite-w:.01875!important;--bird-sprite-h:.03169014084507042!important}
#scene-camera .is-unreleased.thicket-raven{--bird-sprite-u:.77138671875!important;--bird-sprite-v:.0918701171875!important;--bird-sprite-w:.018619791666666666!important;--bird-sprite-h:.03147007042253521!important}

/* village-map-v12.7.css */
/* v12.7 map geography; load after village-map-v10.3.css and older map overrides. */
#village-map.village-map-v127 .village-map-landscape{height:300px}
#village-map.village-map-v127 .village-map-heading{padding-bottom:7px}
#village-map.village-map-v127 .v127-map-subtitle{margin:4px 0 0;font:11px/1.35 "Segoe UI",Arial,sans-serif;color:#7f5b43}
#village-map.village-map-v127 .village-map-stop{top:auto;right:auto;bottom:auto;left:auto;min-height:44px;font-size:13px;line-height:1.2}
#village-map.village-map-v127 .map-stop-glade{left:2%;bottom:2%;width:29%}
#village-map.village-map-v127 .map-stop-village{left:35%;bottom:2%;width:30%}
#village-map.village-map-v127 .map-stop-bridge{left:2%;top:40%;width:33%}
#village-map.village-map-v127 .map-stop-trail{left:38%;top:18%;width:33%}
#village-map.village-map-v127 .map-stop-fork{right:2%;top:0;width:34%}
#village-map.village-map-v127 .map-stop-garden{right:2%;bottom:24%;width:31%}
#journey-viewport[data-stop="village"] #village-map.village-map-v127 .village-map-mini [data-map-stop="village"]{fill:#f8dc57;stroke:#57324f;stroke-width:2.5}
@media(max-width:600px){#village-map.village-map-v127 .village-map-stop{font-size:12px;padding:6px 4px}#village-map.village-map-v127 .village-map-landscape{height:300px}#village-map.village-map-v127 .v127-map-subtitle{font-size:10px}}
/* Keep destinations below the fixed header; short screens scroll the paper map. */
#village-map.village-map-v127>.village-map-sheet{max-height:calc(100svh - 220px)}
@media(max-width:600px){#village-map.village-map-v127>.village-map-sheet{max-height:calc(100svh - 280px)}}

/* village-refinements-v12.8.css */
/* Small timber plaques attach to the actual fence and arch; hit areas stay usable. */
.country-boundary-v127{left:480px;top:322px}
.country-gate-leaf-v127>.gate-plaque-v128{position:absolute;left:8%;top:35%;width:84%;height:35%;display:grid;place-items:center;padding:0;border:1px solid #865c30;border-radius:2px 5px;background:linear-gradient(8deg,#bd8d4f,#ecd2a0 22%,#f1dbaf 70%,#bf945b);box-shadow:0 1px 1px #3a26124d;color:#49312d;font:400 12px/1 "Quest Display",sans-serif;text-shadow:0 1px #fff4d0;pointer-events:none;rotate:-2deg}
.gate-plaque-v128:before,.gate-plaque-v128:after{content:"";position:absolute;top:45%;width:2px;height:2px;border-radius:50%;background:#775333;left:4px;box-shadow:0 1px #f5ddb3}.gate-plaque-v128:after{left:auto;right:4px}
.attached-route-v128{position:absolute;z-index:9;height:var(--hub-control-size,66px);pointer-events:none!important;translate:0 -50%}
.attached-route-v128[hidden]{display:none!important}
#scene-camera .attached-route-v128>button{width:100%;height:100%;min-height:0;min-width:0;padding:0;border:0;background:none;box-shadow:none;display:grid;place-items:center;pointer-events:auto!important;touch-action:manipulation;isolation:isolate;color:#472f2b;font:400 14px/1 "Quest Display",sans-serif}
.attached-route-v128>button>span{position:relative;display:grid;place-items:center;box-sizing:border-box;width:100%;min-height:36px;padding:3px 7px;border:1px solid #96703e;border-radius:3px 5px 3px 4px;background:repeating-linear-gradient(2deg,#a9783f08 0 3px,transparent 4px 8px),linear-gradient(8deg,#c39b62,#f0ddb5 23%,#e5c793 90%,#b78b50);box-shadow:0 1px 2px #3c29174d;pointer-events:none;rotate:-4deg;text-shadow:0 1px #fff3d0}
.attached-route-v128>button>span:before,.attached-route-v128>button>span:after{content:"";position:absolute;top:45%;left:4px;width:2px;height:2px;border-radius:50%;background:#6b4b2e}.attached-route-v128>button>span:after{left:auto;right:4px}
.arch-route-v128:before{content:none}
#scene-camera .bridge-route-v128>button{font-size:9px}
.bridge-route-v128>button>span{min-height:18px;padding:2px;rotate:5deg}
#scene-camera .gate-fixed-route-v128>button{font-size:13px}
.gate-fixed-route-v128>button>span{min-height:23px;padding:3px;rotate:-2deg}
.attached-route-v128>button:focus-visible{outline:2px solid #fff1a6;outline-offset:2px;border-radius:5px}
.attached-route-v128>button:hover>span{filter:brightness(1.035)}
/* One modest path marker at the verge replaces the giant central signpost. */
#outside-world>#journey-next{left:47.85%!important;top:50.3%!important;translate:-50% -50%;width:calc(var(--world-w)*84/1536)!important;height:calc(var(--world-h)*44/1024)!important;min-height:0!important;min-width:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;display:grid;place-items:center;font:400 calc(var(--world-w)*10/1536)/1 "Quest Display",sans-serif!important;color:#49312e;rotate:-3deg;isolation:isolate;z-index:10}
#outside-world>#journey-next:before{content:"";position:absolute;inset:22% 0;border:1px solid #8c6537;border-radius:3px;background:linear-gradient(8deg,#bb8e53,#eed8ad 24%,#dfbd86 90%,#ae7d42);box-shadow:0 1px 2px #27302255;z-index:-1}
#outside-world>#journey-next:after{content:"";position:absolute;left:47%;top:55%;width:6%;height:64%;background:linear-gradient(90deg,#896139,#bd9762,#725131);z-index:-2;box-shadow:1px 1px 1px #26351e44}
#outside-world>#journey-next[hidden]{display:none!important}
#outside-world>#journey-next:focus-visible{outline:2px solid #fff1ac;outline-offset:2px}
#outside-world>#trail-village-return,#outside-world>#fork-signs{display:none!important}
/* Side glances pan inside the Village; pets remain in their own patio space. */
#journey-viewport[data-stop=glade]:not([data-look=centre]) .village-friends{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#journey-viewport[data-stop=glade] .journey-reading-dock:has(>.trail-look-controls:not([hidden])){--dock-extra:104px}
@media(min-width:601px){#journey-viewport[data-stop=glade] .trail-look-controls{display:none!important}#journey-viewport[data-stop=glade] .journey-reading-dock:has(>.trail-look-controls:not([hidden])){--dock-extra:54px}}
#village-map .village-map-label-v128{position:absolute;left:3px;right:3px;bottom:-1px;padding:1px 2px;border-radius:3px;background:#f9e5b7;text-align:center;font:700 10px/1.2 "Segoe UI",sans-serif;color:#443040;pointer-events:none}
#village-map.village-map-v127>summary>.village-map-mini{height:calc(100% - 12px)}
#village-map.village-map-v127 .map-stop-glade{left:35%;bottom:2%;width:30%}
#journey-viewport[data-stop=village] #village-map [data-map-stop=glade]{fill:#f8dc57;stroke:#57324f;stroke-width:2.5}
@media(prefers-reduced-motion:reduce){.attached-route-v128,.gate-plaque-v128{transition:none!important}}

/* discoveries-habitats-v12.8.css */
/* Scene-native belonging nooks. Presentation only; existing quest/storage logic is retained. */
#journey-viewport .habitat-find-v128{position:absolute!important;left:var(--find-left)!important;top:var(--find-top)!important;width:var(--find-hit-size,56px)!important;height:var(--find-hit-size,56px)!important;min-width:0!important;min-height:0!important;padding:0!important;border:0!important;background:none!important;border-radius:7px!important;translate:-50% -50%!important;rotate:0deg!important;transform:none!important;box-shadow:none!important;isolation:isolate;pointer-events:auto!important;overflow:visible;touch-action:manipulation}
#journey-viewport .habitat-find-v128::after{content:none!important;background:none!important;display:none!important}
#journey-viewport .habitat-find-v128::before{display:none!important}
#journey-viewport .habitat-find-v128>.workbook-find-art{position:absolute!important;left:calc(50% + var(--art-x))!important;top:calc(50% + var(--art-y))!important;bottom:auto!important;width:var(--art-w)!important;height:var(--art-h)!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center!important;transform:translate(0,0) rotate(var(--art-angle,0deg));transform-origin:50% 75%;translate:none!important;opacity:1!important;filter:brightness(.96) saturate(.97) drop-shadow(0 1px 1px #203a2855)!important;z-index:1;pointer-events:none!important;transition:transform .38s cubic-bezier(.2,.65,.2,1)}
#journey-viewport .habitat-find-v128>.find-native-edge-v128{position:absolute;left:calc(50% - var(--source-x));top:calc(50% - var(--source-y));width:var(--source-w);height:var(--source-h);max-width:none;max-height:none;display:block;z-index:2;overflow:visible;pointer-events:none!important}
#journey-viewport .habitat-find-v128.is-peeked>.workbook-find-art{transform:translate(var(--pull-x),var(--pull-y)) rotate(var(--art-angle,0deg));opacity:1!important}
#journey-viewport .habitat-find-v128.is-found>.workbook-find-art{visibility:hidden;opacity:1!important}
#journey-viewport .habitat-find-v128>.workbook-find-caption{z-index:4;bottom:calc(100% + var(--find-hit-size,56px)*.125);opacity:0!important;font:600 12px/1.25 "Segoe UI",Arial,sans-serif;font-size:calc(var(--find-hit-size,56px)*.2142857143);max-width:calc(var(--find-hit-size,56px)*2.857142857);padding:calc(var(--find-hit-size,56px)*.107142857) calc(var(--find-hit-size,56px)*.142857143);border-width:calc(var(--find-hit-size,56px)*.017857143);border-radius:calc(var(--find-hit-size,56px)*.125);box-shadow:0 calc(var(--find-hit-size,56px)*.035714286) 0 #60432f55}
#journey-viewport .habitat-find-v128:is(:hover,:focus-visible,.is-peeked)>.workbook-find-caption{opacity:1!important}
#journey-viewport .habitat-find-v128.is-found:not(:focus-visible):not(:hover)>.workbook-find-caption{opacity:0!important}
#journey-viewport .habitat-find-v128:focus-visible{outline:2px dashed #f9e6a8!important;outline-offset:2px;background:none!important}
#journey-viewport .habitat-find-v128>.find-sparkles{z-index:5}
#journey-app[data-motion=still] .habitat-find-v128>.workbook-find-art{transition:none!important;animation:none!important}
@media(prefers-reduced-motion:reduce){#journey-viewport .habitat-find-v128>.workbook-find-art{transition:none!important;animation:none!important}}

/* village-map-v12.8-fork.css */
/* Latest local geography. Append after all previous map/annotation overrides. */
#village-map.village-map-v128-fork .village-map-landscape{height:350px}
#village-map.village-map-v128-fork>.village-map-sheet{max-height:calc(100svh - 220px);overflow:auto;overscroll-behavior:contain}
#village-map.village-map-v128-fork .v127-map-subtitle{margin:4px 0 0;font:11px/1.35 "Segoe UI",Arial,sans-serif;color:#7f5b43}
#village-map.village-map-v128-fork .village-map-stop{left:auto;top:auto;right:auto;bottom:auto;min-height:44px;min-width:0;font-size:13px;line-height:1.2}
#village-map.village-map-v128-fork .map-stop-glade{left:2%;bottom:2%;width:35%}
#village-map.village-map-v128-fork .map-stop-crossing{left:2%;top:59%;width:35%}
#village-map.village-map-v128-fork .map-stop-trail{left:35%;top:45%;width:31%}
#village-map.village-map-v128-fork .map-stop-fork{left:35%;top:23%;width:31%}
#village-map.village-map-v128-fork .map-stop-bridge{left:2%;top:0;width:38%}
#village-map.village-map-v128-fork .map-stop-garden{right:2%;top:0;width:38%}
#village-map.village-map-v128-fork .map-stop-hall{right:2%;bottom:2%;width:43%}
#journey-viewport[data-stop="crossing"] #village-map.village-map-v128-fork .village-map-mini [data-map-stop="crossing"]{fill:#f8dc57;stroke:#57324f;stroke-width:2.5}
@media(max-width:600px){#village-map.village-map-v128-fork .village-map-stop{font-size:12px;padding:6px 4px}#village-map.village-map-v128-fork .village-map-landscape{height:350px}#village-map.village-map-v128-fork>.village-map-sheet{max-height:calc(100svh - 280px)}}


/* grove-route-v12.8.css */
/* The Village crossing remains a shared source view. Level4 endpoints live beyond the Grove fork. */
#journey-viewport:is([data-stop=glade],[data-stop=village],[data-stop=crossing]){--cam-z:var(--entry-z,-90px);--cam-x:0px;--cam-y:0px;--cam-yaw:0deg;--cam-tilt:0deg;--trail-magic:0}
#journey-viewport:is([data-stop=bridge],[data-stop=garden]){--cam-z:2250px;--cam-x:0px;--cam-y:0px;--cam-yaw:0deg;--cam-tilt:0deg;--trail-magic:1}
#journey-viewport:is([data-stop=glade],[data-stop=village],[data-stop=crossing]) .outside-world{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#journey-viewport:is([data-stop=glade],[data-stop=village],[data-stop=crossing]) .hub-world-v127{opacity:1!important;visibility:visible!important}
#journey-viewport:is([data-stop=trail],[data-stop=fork],[data-stop=bridge],[data-stop=garden]) .outside-world{opacity:1!important;visibility:visible!important}
#journey-viewport:is([data-stop=trail],[data-stop=fork],[data-stop=bridge],[data-stop=garden]) .hub-world-v127{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#journey-viewport[data-stop=crossing] .country-gate-leaf-v127{transform:rotateY(-100deg)}
#journey-viewport[data-stop=crossing] .journey-reading-dock{bottom:70px}
#journey-viewport{background-image:url('assets/grove-v12.8/grove-fork-v12.8.webp')}
.outside-world .natural-habitat-cover{background-image:url('assets/grove-v12.8/grove-fork-v12.8.webp')!important}
/* Retire old free-standing fern cutouts; the new banks, roots and mushrooms hide the finds. */
#outside-world .wind-plant[data-wind-kind=fern],#outside-world .wind-garden-bough{display:none!important}
/* Two small directional boards share a grounded short post at the actual path fork. */
#outside-world>#fork-signs{position:absolute;display:flex!important;flex-direction:column;left:62.37%!important;top:43.36%!important;translate:-50% -50%;width:calc(var(--world-w)*90/1536)!important;gap:calc(var(--world-h)*3/1024)!important;padding:0 0 calc(var(--world-h)*19/1024);z-index:10;isolation:isolate;pointer-events:none!important;filter:drop-shadow(0 1px 1px #2c382c55)}
#outside-world>#fork-signs[hidden]{display:none!important}
#outside-world>#fork-signs:before{content:"";position:absolute;top:12%;bottom:0;left:47%;height:auto;width:6%;border:0;background:linear-gradient(90deg,#755133,#b58b56,#68482d);z-index:-1}
#outside-world>#fork-signs:after{content:"";position:absolute;left:28%;right:28%;bottom:-3%;height:7%;border-radius:50%;background:#273f2744;filter:blur(1px);z-index:-2}
#outside-world>#fork-signs>button{display:block;box-sizing:border-box;width:100%;min-width:0!important;height:calc(var(--world-h)*27/1024)!important;min-height:0!important;padding:calc(var(--world-h)*3/1024) calc(var(--world-w)*4/1536)!important;border:1px solid #805e38;border-radius:2px 5px;background:linear-gradient(8deg,#bb8e53,#efdab3 24%,#d9b77c 90%,#aa7b42);box-shadow:0 1px 1px #24322655;color:#49312e;font:400 calc(var(--world-w)*10.5/1536)/1 "Quest Display",sans-serif!important;rotate:-3deg;pointer-events:auto!important;touch-action:manipulation}
#outside-world>#fork-signs>button+button{rotate:3deg}
#outside-world>#fork-signs>button:focus-visible{outline:2px solid #fff0a8;outline-offset:3px}
/* Pets stand on the square's paving and move with its camera, not the screen edges. */
#hub-source-plane-v127>.village-friends{position:absolute;inset:0;width:1536px;height:1024px;transform:none;z-index:8;pointer-events:none!important}
#journey-viewport[data-stop=glade] #hub-source-plane-v127>.village-friends>.world-friend{top:704px!important;bottom:auto!important;right:auto!important;width:270px!important;height:210px!important;translate:-50% -100%!important;transform:none!important;--actor-body-width:170px;--actor-body-height:175px;pointer-events:auto!important}
#journey-viewport[data-stop=glade] #hub-source-plane-v127>.village-friends>.friend-kitten{left:730px!important}
#journey-viewport[data-stop=glade] #hub-source-plane-v127>.village-friends>.friend-puppy{left:965px!important}
@media(max-width:600px){#journey-viewport[data-stop=glade] #hub-source-plane-v127>.village-friends>.world-friend{top:684px!important;width:165px!important;height:160px!important;--actor-body-width:125px;--actor-body-height:130px}#journey-viewport[data-stop=glade] #hub-source-plane-v127>.village-friends>.friend-kitten{left:680px!important}#journey-viewport[data-stop=glade] #hub-source-plane-v127>.village-friends>.friend-puppy{left:860px!important}}
.country-boundary-v127{left:315px;top:383px;width:270px;height:120px}
.village-map.village-map-v128-fork>.village-map-sheet{max-height:calc(100svh - 220px)}
@media(max-width:600px){.village-map.village-map-v128-fork>.village-map-sheet{max-height:calc(100svh - 280px)}}

/* gnome-grove-v12.8.css */
/* Full approved sprite behind native upper mushrooms, fern and tree-root scenery.
   Load after all legacy actor rules. --world-w/h are the unchanged source-plane dimensions. */
#outside-world .grove-character-habitat[data-actor-habitat="gnome"]{position:absolute;left:0;top:0;width:var(--world-w);height:var(--world-h);max-width:none;overflow:visible;isolation:isolate;pointer-events:none!important;user-select:none}
#outside-world .grove-character-habitat[data-actor-habitat="gnome"]>.world-friend.actorimage{position:absolute;display:block;left:calc(var(--world-w)*0.888020833333333);top:calc(var(--world-h)*0.311523437500000);right:auto;bottom:auto;width:calc(var(--world-w)*0.035807291666667);height:calc(var(--world-h)*0.069335937500000);min-width:0!important;min-height:0!important;max-width:none;max-height:none;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;z-index:1;opacity:1!important;visibility:visible;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transition:none!important;animation:none!important;pointer-events:none!important;overflow:visible}
#outside-world .grove-character-habitat[data-actor-habitat="gnome"] .actor-body{position:absolute;display:block;inset:0;width:100%;height:100%;min-width:0;min-height:0;max-width:none;max-height:none;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;opacity:1!important;filter:none!important;transform:rotate(-18deg)!important;transform-origin:50% 100%!important;translate:none!important;rotate:0deg!important;scale:1!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transition:none!important;animation:none!important;overflow:visible;pointer-events:none!important}
#outside-world .grove-character-habitat[data-actor-habitat="gnome"] .actor-body>img{position:absolute;display:block;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain!important;object-position:center top;opacity:1!important;filter:brightness(.84) saturate(.88)!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;transition:none!important;animation:none!important;pointer-events:none!important}
#outside-world .grove-character-habitat[data-actor-habitat="gnome"] .world-friend::before,#outside-world .grove-character-habitat[data-actor-habitat="gnome"] .world-friend::after,#outside-world .grove-character-habitat[data-actor-habitat="gnome"] .actor-body::before,#outside-world .grove-character-habitat[data-actor-habitat="gnome"] .actor-body::after{display:none!important}
#outside-world .grove-character-habitat[data-actor-habitat="gnome"]>.gnome-grove-native-cover-v128{position:absolute;display:block;inset:0;width:100%;height:100%;max-width:none;overflow:visible;z-index:2;opacity:1;filter:none;transform:none;translate:none;rotate:0deg;scale:1;pointer-events:none!important}
#outside-world .grove-character-habitat[data-actor-habitat="gnome"] svg *{pointer-events:none!important}

/* ogre-grove-v12.8.css */
/* Unreleased Level 4 review cameo. Native source layers, no interaction or beacon.
   DIV wrappers and explicit resets avoid legacy .world-friend span label styling. */
#outside-world>.grove-ogre-v128{position:absolute!important;inset:0!important;left:0!important;top:0!important;width:var(--world-w,100%)!important;height:var(--world-h,100%)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important;z-index:5;isolation:isolate;display:block;overflow:visible!important;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;pointer-events:none!important}
#outside-world>.grove-ogre-v128>.actor-body{position:absolute!important;inset:auto!important;left:calc(479/1536*100%)!important;top:calc(295/1024*100%)!important;width:calc(24/1536*100%)!important;height:calc(31/1024*100%)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important;display:block!important;z-index:1;overflow:visible!important;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;animation:none!important;transition:none!important;pointer-events:none!important}
#outside-world>.grove-ogre-v128>.actor-body>img{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important;object-fit:contain!important;object-position:center top!important;opacity:1!important;filter:brightness(.76)!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;animation:none!important;transition:none!important;pointer-events:none!important}
#outside-world>.grove-ogre-v128>.ogre-grove-native-foreground{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;background:none!important;z-index:2;overflow:visible;opacity:1!important;filter:none!important;transform:none!important;translate:none!important;rotate:0deg!important;scale:1!important;mask:none!important;-webkit-mask:none!important;pointer-events:none!important}
#outside-world>.grove-ogre-v128::before,#outside-world>.grove-ogre-v128::after,#outside-world>.grove-ogre-v128 .actor-body::before,#outside-world>.grove-ogre-v128 .actor-body::after{display:none!important;content:none!important}
#outside-world>.grove-ogre-v128 *{pointer-events:none!important}

/* community-hall-v12.8.css */
/* A shared, in-flow information shell. Scene captions and sample dialogs are untouched. */
#community-hall-shell{min-height:100svh;padding-top:160px;padding-bottom:35px;background:#fff4dc;color:#493547}
#community-hall-shell[hidden]{display:none!important}
#journey-app:is([data-view="hall"],[data-view="catalogue"],[data-view="parents"],[data-view="notes"])>.journey-header{position:fixed;inset:0 0 auto;background:#273c37;z-index:60}
#community-hall-shell>.journey-content-view{padding-top:14px!important;min-height:0;background:transparent}
.community-hall-nav-v128{display:flex;flex-wrap:wrap;gap:5px 14px;align-items:center;padding-top:8px;padding-bottom:12px;border-bottom:1px solid #ad8a5b66}
.community-hall-nav-v128>button{min-height:44px;min-width:44px;max-width:100%;padding:8px 3px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#56364f;text-align:left;white-space:normal;font:700 .875rem/1.4 "Segoe UI",Arial,sans-serif;cursor:pointer}
.community-hall-nav-v128>button:hover{border-bottom-color:#b88742;color:#7f365b}
.community-hall-nav-v128>button[aria-current="page"]{border-bottom-color:#a57136;color:#462e45}
.community-hall-nav-v128>button:focus-visible,.hall-links-v128>button:focus-visible{outline:3px solid #a42e68;outline-offset:3px;border-radius:3px}
.hall-home-v128{max-width:850px;padding-bottom:35px}
.hall-kicker-v128{margin:20px 0 9px;color:#855d40;font:800 .6875rem/1.5 "Segoe UI",Arial,sans-serif;letter-spacing:.1em}
#hall-view .view-title{margin:0 0 18px;font-size:clamp(30px,4vw,43px);line-height:1.15}
.hall-intro-v128{max-width:660px;margin:0;font:400 1rem/1.65 "Segoe UI",Arial,sans-serif;color:#5e4750}
.hall-news-v128{margin-top:28px;padding:18px 0;border-top:1px solid #b8956666;border-bottom:1px solid #b8956666;scroll-margin-top:150px}
.hall-news-v128 h2{margin:0 0 8px;font:400 1.5rem/1.2 "Quest Display","Trebuchet MS",sans-serif;color:#56364f}
.hall-news-v128 p,.hall-contact-v128 p{margin:0;font:400 .9375rem/1.6 "Segoe UI",Arial,sans-serif;color:#624d52}
.hall-contact-v128{margin-top:22px}
.hall-links-v128{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:7px}
.hall-links-v128>button{min-height:44px;padding:7px 0;border:0;background:none;color:#714460;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;font:700 .875rem/1.4 "Segoe UI",Arial,sans-serif;text-align:left;cursor:pointer}
@media(max-width:600px){#community-hall-shell{padding-top:176px}.community-hall-nav-v128{gap:3px 12px}.community-hall-nav-v128>button{font-size:.8125rem}.hall-kicker-v128{margin-top:16px}.hall-news-v128{scroll-margin-top:180px}.hall-intro-v128{font-size:.9375rem}}

/* village-buildings-v12.9.css */
/* Entries belong to painted doors; the former arch is scenery reserved for later. */
.building-portal-v129{position:absolute;inset:0;z-index:5;pointer-events:none!important}
.building-portal-v129[hidden]{display:none!important}
#scene-camera .building-entry-v129{position:absolute;display:block;min-width:0;min-height:0;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;pointer-events:auto!important;cursor:pointer;touch-action:manipulation;perspective:360px;isolation:isolate}
.building-entry-v129:focus-visible{outline:3px dashed #fff0a8;outline-offset:6px}
.building-label-v129{position:absolute;display:grid;place-items:center;box-sizing:border-box;text-align:center;color:#49312a;font:400 14px/1.05 "Quest Display",sans-serif;text-shadow:0 1px #f7ddab;pointer-events:none!important}
.hall-door-recess-v129{position:absolute;inset:0;border-radius:45% 45% 0 0;background:radial-gradient(ellipse at 50% 95%,#aa7544 0,#432c21 48%,#221e18 85%);overflow:hidden;pointer-events:none!important}
.hall-door-leaf-v129{position:absolute;top:0;height:100%;width:50%;background-image:url('assets/village-v12.9/village-square-v12.9-fruit.webp');background-size:1536px 1024px;background-repeat:no-repeat;backface-visibility:hidden;transition:transform 1.05s cubic-bezier(.2,.65,.25,1);transform:rotateY(0deg);pointer-events:none!important}
.hall-door-left-v129{left:0;transform-origin:0 55%;border-top-left-radius:90% 55%}
.hall-door-right-v129{right:0;transform-origin:100% 55%;border-top-right-radius:90% 55%}
#journey-viewport[data-entry-building=hall] .hall-door-left-v129{transform:rotateY(-105deg)}
#journey-viewport[data-entry-building=hall] .hall-door-right-v129{transform:rotateY(105deg)}
/* The small Grove plaque rests on a fixed fence rail, clear of the gateway. */
#scene-camera #grove-route-v128{position:absolute;left:0;top:0;width:100%;height:100%;min-height:0;min-width:0;padding:0;background:none;border:0;box-shadow:none;color:#49312d;font:400 13px/1 "Quest Display",sans-serif;pointer-events:auto!important}
#grove-route-v128>span{display:grid;place-items:center;width:100%;min-height:22px;padding:2px 4px;box-sizing:border-box;border:1px solid #8c673d;border-radius:3px;background:linear-gradient(8deg,#c49b61,#f1ddb0 28%,#dfbd86 90%);box-shadow:0 1px 1px #3e2b2255;rotate:-2deg;pointer-events:none!important}
.future-arch-note-v129{position:absolute;color:#684f38;font:600 9px/1.15 "Segoe UI",sans-serif;pointer-events:none!important;opacity:.9;rotate:3deg}
.country-boundary-v127:before{display:none!important}
.country-fixed-v127{display:none!important}
.wind-native-layers-v129{position:absolute;inset:0;width:1536px;height:1024px;z-index:6;transform:none;overflow:visible}
.wind-native-layers-v129>.wind-native-v129{position:absolute;inset:0;width:1536px;height:1024px;aspect-ratio:auto;transform:none!important}
.wind-native-v129>.wind-tip{display:block;position:absolute;inset:0;width:1536px;height:1024px;background:none!important;pointer-events:none!important}
#scene-camera .country-gate-leaf-v127{transform:skewY(-8.5deg) rotateY(0deg)}
#journey-viewport:is([data-gate=open],[data-gate=returning],[data-stop=crossing]) .country-gate-leaf-v127{transform:skewY(-8.5deg) rotateY(-105deg)}
#journey-app[data-motion=still] .hall-door-leaf-v129{transition:none!important}
@media(prefers-reduced-motion:reduce){.hall-door-leaf-v129{transition:none!important}}

/* ambient-events-v12.9.css */
/* Source-sized decorative events. The Village root belongs inside its camera
   plane; the Grove root scales with the existing panorama. No screen overlay. */
.ambient-source-events-v129,.ambient-source-events-v129 *{pointer-events:none!important;user-select:none!important}
.ambient-source-events-v129{--ambient-unit:1px;position:absolute;inset:0;overflow:hidden;contain:layout paint;isolation:isolate;z-index:7}
#outside-world>.ambient-source-events-v129{--ambient-unit:calc(var(--world-w) / 1536);z-index:6}
.ambient-source-events-v129 [hidden]{display:none!important}
.ambient-event-v129{position:absolute;translate:-50% -50%;margin:0;padding:0;border:0;background:none;box-shadow:none}
.ambient-event-v129 svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none!important}
.ambient-apple-v129{width:var(--apple-size,calc(var(--ambient-unit)*22));aspect-ratio:60/65}
.ambient-apple-v129 .ambient-apple-art{position:relative;width:100%;height:100%;transform-origin:50% 85%;filter:drop-shadow(0 1px 1px #55322e44)}
.ambient-apple-v129 .ambient-apple-shadow{position:absolute;left:calc(50% + var(--apple-drop-x));top:calc(100% + var(--apple-drop-y) - 2px);translate:-50% 0;width:104%;height:13%;border-radius:50%;background:#5d46384a;filter:blur(1px);opacity:0}
.ambient-apple-v129.is-playing .ambient-apple-art{animation:cq-v129-apple-fall 5.2s cubic-bezier(.43,.08,.73,.58) both}
.ambient-apple-v129.is-playing .ambient-apple-shadow{animation:cq-v129-apple-shadow 5.2s ease-out both}
@keyframes cq-v129-apple-fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(-8deg)}6%,8%{opacity:1;transform:translate3d(0,0,0) rotate(-8deg)}42%{transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(22deg)}49%{transform:translate3d(var(--apple-drop-x),calc(var(--apple-drop-y) - var(--ambient-unit)*8),0) rotate(13deg)}56%{transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(18deg)}62%{transform:translate3d(var(--apple-drop-x),calc(var(--apple-drop-y) - var(--ambient-unit)*2),0) rotate(17deg)}69%,91%{opacity:1;transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(18deg)}100%{opacity:0;transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(18deg)}}
@keyframes cq-v129-apple-shadow{0%,8%{opacity:0;scale:.3}42%,91%{opacity:.75;scale:1}49%{opacity:.45;scale:.78}100%{opacity:0;scale:1}}
.ambient-butterfly-v129{width:calc(var(--ambient-unit)*20);height:calc(var(--ambient-unit)*16);filter:drop-shadow(0 1px 1px #3f3a3a33)}
.ambient-butterfly-v129 svg{scale:var(--ambient-facing,1) 1}
.ambient-butterfly-v129 .butterfly-wing{transform-box:view-box;transform-origin:12px 9px}
.ambient-butterfly-v129.is-playing{animation:cq-v129-flight 5.8s ease-in-out both}
.ambient-butterfly-v129.is-playing .butterfly-wing{animation:cq-v129-wing .72s ease-in-out 8 alternate}
@keyframes cq-v129-wing{from{scale:1 1}to{scale:.62 1}}
.ambient-bug-v129{width:calc(var(--ambient-unit)*7);height:calc(var(--ambient-unit)*5);opacity:0;filter:drop-shadow(0 1px 1px #2a3b2944)}
.ambient-bug-v129.is-playing{animation:cq-v129-flight 4.6s ease-in-out both}
@keyframes cq-v129-flight{0%{opacity:0;transform:translate3d(0,calc(var(--ambient-unit)*6),0) rotate(-7deg)}13%{opacity:.9}29%{transform:translate3d(var(--fly-a-x),var(--fly-a-y),0) rotate(11deg)}54%{transform:translate3d(var(--fly-b-x),var(--fly-b-y),0) rotate(-6deg)}77%{opacity:.9;transform:translate3d(var(--fly-c-x),var(--fly-c-y),0) rotate(8deg)}100%{opacity:0;transform:translate3d(var(--fly-d-x),var(--fly-d-y),0) rotate(2deg)}}
.ambient-leaf-v129{width:calc(var(--ambient-unit)*14);height:calc(var(--ambient-unit)*21);filter:drop-shadow(0 1px 1px #27372a33)}
.ambient-leaf-v129.is-playing{animation:cq-v129-leaf 4.8s ease-in-out both}
@keyframes cq-v129-leaf{0%{opacity:0;transform:translate3d(0,0,0) rotate(-24deg)}13%{opacity:.88}34%{transform:translate3d(calc(var(--leaf-dx)*.55),calc(var(--leaf-dy)*.22),0) rotate(16deg)}65%{opacity:.88;transform:translate3d(calc(var(--leaf-dx)*.35),calc(var(--leaf-dy)*.65),0) rotate(-14deg)}100%{opacity:0;transform:translate3d(var(--leaf-dx),var(--leaf-dy),0) rotate(18deg)}}
.ambient-fireflies-v129{width:calc(var(--ambient-unit)*60);height:calc(var(--ambient-unit)*42)}
.ambient-fireflies-v129>i{position:absolute;width:calc(var(--ambient-unit)*3);height:calc(var(--ambient-unit)*3);border-radius:50%;background:#e6edb8;box-shadow:0 0 4px 1px #b5edaa68;opacity:0}
.ambient-fireflies-v129>i:first-child{left:10%;top:75%;--light-x:calc(var(--ambient-unit)*9);--light-y:calc(var(--ambient-unit)*-14)}
.ambient-fireflies-v129>i+ i{left:70%;top:35%;--light-x:calc(var(--ambient-unit)*-7);--light-y:calc(var(--ambient-unit)*-11)}
.ambient-fireflies-v129[data-density="1"]>i+ i{display:none}
.ambient-fireflies-v129.is-playing>i{animation:cq-v129-firefly 4.5s ease-in-out both}
@keyframes cq-v129-firefly{0%{opacity:0;transform:translate3d(0,0,0)}25%,72%{opacity:.7}100%{opacity:0;transform:translate3d(var(--light-x),var(--light-y),0)}}
#journey-app[data-motion="still"] .ambient-source-events-v129,#journey-app:not([data-view="scene"]) .ambient-source-events-v129{display:none!important}
@media(prefers-reduced-motion:reduce){.ambient-source-events-v129{display:none!important}.ambient-source-events-v129 *{animation:none!important}}

/* foreground-v12.10.css */
/* The apple boughs are a genuine transparent foreground frame over the play square. */
.apple-canopy-v1210{position:absolute;inset:-65px 0 0;z-index:21;overflow:hidden;contain:layout paint;pointer-events:none!important;opacity:0;visibility:hidden;transition:opacity .6s,visibility 0s .6s}
.apple-canopy-v1210 *{pointer-events:none!important;user-select:none}
#journey-viewport[data-stop=glade][data-look=centre]:not([data-transit]):not([data-entry-building])>.apple-canopy-v1210{opacity:1;visibility:visible;transition:opacity .65s,visibility 0s}
.apple-canopy-v1210>.apple-bough-v1210{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;transform:translate3d(calc(var(--bough-base-x,0px) + var(--bough-x,0px)),var(--bough-y,0px),0) rotate(var(--bough-angle,0deg));transform-origin:var(--bough-pivot);transition:transform .7s cubic-bezier(.18,.75,.25,1);filter:drop-shadow(0 5px 7px #33402d33)}
.apple-bough-v1210>.wind-tip{position:absolute;inset:0;width:100%;height:100%;background:none!important;display:block;transform-origin:var(--bough-pivot)}
.apple-bough-left-v1210{--bough-pivot:0% 30%}
.apple-bough-right-v1210{--bough-pivot:100% 31%}
/* Real scenery remains visible through the middle and all interactive UI sits above. */
@media(max-width:600px){.apple-bough-left-v1210{--bough-base-x:3vw}.apple-bough-right-v1210{--bough-base-x:-24vw}.apple-canopy-v1210{inset:-12px 0 0;clip-path:inset(0 0 40% 0)}}
#journey-app[data-motion=still] .apple-bough-v1210{transition:none;transform:translate3d(var(--bough-base-x,0px),0,0)}
@media(prefers-reduced-motion:reduce){.apple-canopy-v1210{transition:none}.apple-bough-v1210{transition:none;transform:translate3d(var(--bough-base-x,0px),0,0)}}
/* Fit lettering on the painted sign faces, not on the awning or carved edges. */
.hall-label-fit-v1210{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 1px;gap:0;font-size:11.3px;line-height:10.5px;letter-spacing:.06px;white-space:nowrap;color:#513425;text-shadow:0 .5px #f7dfaf99}
.hall-label-fit-v1210>span{display:block;line-height:10.5px}
.library-label-fit-v1210{font-size:11.2px;line-height:12px;letter-spacing:.1px;white-space:nowrap;rotate:-2deg;color:#452c20;text-shadow:0 .5px #f0d4a999}
#grove-route-v128>.gate-invitation-v1210{position:relative;min-height:27px;padding:2px 12px 2px 3px;font:400 10.6px/11px "Quest Display",sans-serif;letter-spacing:.05px;white-space:nowrap;text-align:center}
.gate-invitation-v1210 svg{position:absolute;right:3px;top:8px;width:10px;height:11px;stroke:currentColor;stroke-width:1.4;fill:none}
/* Traversal is a single continuous Village -> Grove action. Bridge art is unchanged. */
#journey-viewport{touch-action:pan-y pinch-zoom}
#trail-look-controls{display:none!important}
#journey-viewport[data-transit=outward] .hub-world-v127{opacity:0!important;visibility:visible!important;transition:opacity .45s 1.2s,visibility 0s!important}
#journey-viewport[data-transit=outward] .outside-world{opacity:1!important;visibility:visible!important;pointer-events:none!important;transition:opacity .45s 1.2s!important;--cam-z:2050px}
#journey-viewport[data-stop=trail] .outside-world{transition:opacity .4s,transform .4s!important}
#journey-viewport[data-transit=outward] .scenery-glade{opacity:0!important;transition:opacity .45s 1.2s!important}
#journey-app[data-motion=still] [data-transit=outward] .hub-world-v127,#journey-app[data-motion=still] [data-transit=outward] .outside-world{transition:none!important}
#journey-app[data-motion=still] .outside-world,#journey-app[data-motion=still] .hub-world-v127,#journey-app[data-motion=still] .lane-world-v1210{transition:none!important;animation:none!important}
#outside-world>.trail-foreground.fern-left,#outside-world>.trail-foreground.fern-right{display:none!important}
.wind-native-woods-v1210{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none!important}
.wind-native-woods-v1210>.wind-plant{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;transform:none!important}
.wind-native-woods-v1210 .wind-tip{position:absolute;inset:0;width:100%;height:100%;display:block;background:none!important;pointer-events:none!important}
@media(prefers-reduced-motion:reduce){.outside-world,.hub-world-v127,.lane-world-v1210{transition:none!important;animation:none!important}}
/* Short landscape windows keep the caption beside the play area, not over the pets. */
@media(max-height:540px) and (min-width:601px){#journey-viewport .journey-reading-dock,#journey-viewport:not([data-stop=glade]) .journey-reading-dock{left:18px;translate:none;width:min(260px,38vw);bottom:66px}#journey-viewport .journey-story h1{font-size:1.0625rem;line-height:1.2}}

/* character-habitats-v12.11.css */
/* Native Grove layers: complete, opaque art behind matching physical scenery.
   Intentionally uses new classes so obsolete thicket/mask/actor CSS cannot leak in.
   Load after legacy release/habitat CSS. No product availability is changed. */
/* The legacy bird group creates its own stacking context. Keep its complete
   habitat ABOVE the separate z3 moving source-copy bough, which otherwise paints
   the entire Raven away. Each habitat's own real tree remains in front of art. */
#outside-world>.fork-friends:has(>.character-habitat-v1210){z-index:4!important}
#scene-camera .character-habitat-v1210{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:visible!important;isolation:isolate;transform:none!important;opacity:1!important;pointer-events:none!important;z-index:6}
#scene-camera .character-habitat-v1210[hidden]{display:none!important}
#scene-camera .character-habitat-v1210:before,#scene-camera .character-habitat-v1210:after{display:none!important;content:none!important}
#scene-camera .character-habitat-v1210>.habitat-actor-plane-v1210{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:1;overflow:visible!important;pointer-events:none!important;translate:0 0;transform:none!important;transition:translate .34s cubic-bezier(.22,.66,.26,1);opacity:1!important;clip-path:none!important;mask:none!important}
#scene-camera .character-habitat-v1210.is-habitat-peek>.habitat-actor-plane-v1210{translate:var(--habitat-peek-x,0%) var(--habitat-peek-y,0%)}
#scene-camera .character-habitat-v1210 .habitat-actor-v1210{position:absolute!important;display:block!important;left:var(--habitat-actor-x)!important;top:var(--habitat-actor-y)!important;width:var(--habitat-actor-w)!important;height:var(--habitat-actor-h)!important;right:auto!important;bottom:auto!important;max-width:none!important;max-height:none!important;object-fit:fill!important;object-position:center!important;transform:rotate(var(--habitat-angle,0deg)) scaleX(var(--habitat-mirror,1))!important;transform-origin:50% 100%!important;translate:none!important;rotate:0deg!important;scale:none!important;opacity:1!important;visibility:visible!important;filter:brightness(var(--habitat-brightness,.85)) saturate(var(--habitat-saturation,.9))!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;animation:none!important;transition:none!important;pointer-events:none!important;user-select:none}
#scene-camera .character-habitat-v1210>.habitat-foreground-v1210{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;display:block!important;overflow:visible!important;z-index:2;opacity:1!important;transform:none!important;translate:none!important;rotate:0deg!important;filter:none!important;pointer-events:none!important;animation:none!important;transition:none!important}
#scene-camera .character-habitat-v1210 .habitat-foreground-v1210 *{pointer-events:none!important}
/* The 55px projected cue sits ON the physical hiding place, not around a sprite.
   No icon/glow/character label spoils the hiding place at rest. A small dashed
   ring appears only on deliberate hover/focus, never across the full habitat. */
#scene-camera .character-habitat-v1210>.habitat-cue-v1210{position:absolute!important;left:var(--habitat-cue-x)!important;top:var(--habitat-cue-y)!important;right:auto!important;bottom:auto!important;width:var(--habitat-cue-size,55px)!important;height:var(--habitat-cue-size,55px)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;transform:none!important;translate:-50% -50%!important;rotate:0deg!important;scale:1!important;opacity:1!important;background:none!important;box-shadow:none!important;filter:none!important;z-index:4;pointer-events:auto!important;touch-action:manipulation;cursor:pointer;outline:0!important;overflow:visible!important}
#scene-camera .habitat-cue-v1210:before,#scene-camera .habitat-cue-v1210:after{content:none!important;display:none!important}
#scene-camera .habitat-cue-v1210>.habitat-cue-mark-v1210{position:absolute;inset:12%;border:var(--habitat-ring-size,1.5px) dashed #f5e7b3b0;border-radius:50%;opacity:0;pointer-events:none!important;transition:opacity .14s ease}
@media(hover:hover){#scene-camera .habitat-cue-v1210:hover>.habitat-cue-mark-v1210{opacity:1}}
#scene-camera .habitat-cue-v1210:focus-visible>.habitat-cue-mark-v1210{inset:0;border-color:#fff4ca;opacity:1;background:#e4c5720c}
#journey-app[data-motion=still] .character-habitat-v1210 .habitat-actor-plane-v1210,#journey-app[data-motion=still] .habitat-cue-mark-v1210{transition:none!important;animation:none!important}
@media(prefers-reduced-motion:reduce){#scene-camera .character-habitat-v1210 .habitat-actor-plane-v1210,#scene-camera .habitat-cue-mark-v1210{transition:none!important;animation:none!important}}

/* A deliberate interaction is a genuine emerge pose, not another cropped glimpse.
   One complete original image moves from its resting habitat to real support.
   Ogre/Gnome step in front of their hiding bank/root; the source objects stay put.
   Hover keeps the old discreet peek. No actor opacity or clipping is animated. */
#scene-camera .character-habitat-v1210.is-habitat-revealed>.habitat-actor-plane-v1210{translate:0 0;z-index:var(--habitat-reveal-layer,1)}
#scene-camera .character-habitat-v1210.is-habitat-revealed .habitat-actor-v1210{left:var(--habitat-reveal-x)!important;top:var(--habitat-reveal-y)!important;width:var(--habitat-reveal-w)!important;height:var(--habitat-reveal-h)!important;transform:rotate(var(--habitat-reveal-angle,0deg)) scaleX(var(--habitat-mirror,1))!important;filter:brightness(var(--habitat-reveal-brightness,.9)) saturate(var(--habitat-saturation,.9))!important}
#scene-camera .character-habitat-v1210 .habitat-actor-v1210{transition:left .5s ease,top .5s ease,width .5s ease,height .5s ease,transform .5s ease,filter .5s ease!important}
#scene-camera .character-habitat-v1210 .habitat-contact-v1211{display:none;position:absolute;left:var(--habitat-shadow-x);top:var(--habitat-shadow-y);width:var(--habitat-shadow-w);height:var(--habitat-shadow-h);translate:-50% -50%;border-radius:50%;background:radial-gradient(ellipse,#14231866,transparent 72%);pointer-events:none!important}
#scene-camera .character-habitat-v1210.is-habitat-revealed .habitat-contact-v1211{display:block}
#journey-app[data-motion=still] .character-habitat-v1210 .habitat-actor-v1210{transition:none!important;animation:none!important}
@media(prefers-reduced-motion:reduce){#scene-camera .character-habitat-v1210 .habitat-actor-v1210{transition:none!important;animation:none!important}}

/* village-extension-v12.10.css */
/* The lane is another part of the same illustrated village, reached through its arch. */
.lane-world-v1210{position:absolute;inset:-14% -16%;z-index:1;opacity:0;visibility:hidden;pointer-events:none!important;transform-style:flat;transition:opacity .45s}
.lane-world-v1210>svg{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none!important}
.lane-source-plane-v1210{position:absolute;left:0;top:0;width:1536px;height:1024px;transform-origin:0 0;pointer-events:none!important}
#journey-viewport[data-stop=lane]{--cam-z:var(--entry-z,-90px);--cam-x:0px;--cam-y:0px;--cam-yaw:0deg;--cam-tilt:0deg;--trail-magic:0}
#journey-viewport[data-stop=lane] .lane-world-v1210{opacity:1;visibility:visible}
#journey-viewport[data-stop=lane] .hub-world-v127,#journey-viewport[data-stop=lane] .outside-world{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#journey-viewport[data-transit=arch-outward] .lane-world-v1210{opacity:1;visibility:visible;transition:opacity .4s 1.1s;pointer-events:none!important}
#journey-viewport[data-transit=arch-outward] .hub-world-v127{opacity:0!important;visibility:visible!important;transition:opacity .4s 1.1s!important}
#scene-camera .world-entry-v1210{position:absolute;display:block;min-width:0;min-height:0;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;pointer-events:auto!important;cursor:pointer;touch-action:manipulation}
.world-entry-v1210:focus-visible{outline:3px dashed #fff1b7;outline-offset:5px}
.arch-invitation-v1210{position:absolute;left:1283px;top:449px;width:77px;height:27px;display:grid;place-items:center;text-align:center;font:400 10px/10.5px "Quest Display",sans-serif;color:#553b2a;rotate:-4deg;pointer-events:none!important;background:linear-gradient(8deg,#ba9058,#edce99 35%,#d0a66e);border:1px solid #946b3f;border-radius:3px;box-shadow:0 1px 1px #4a36294d}
.lane-return-label-v1210{position:absolute;left:233px;top:478px;width:100px;height:31px;display:grid;place-items:center;background:linear-gradient(8deg,#b68d56,#efd3a4 35%,#d9b780);border:1px solid #8e683e;border-radius:4px;color:#4e3529;font:400 12px/12px "Quest Display",sans-serif;rotate:3deg;pointer-events:none!important;text-align:center}
.library-door-recess-v1210{position:absolute;inset:0;overflow:hidden;border-radius:2px;background:radial-gradient(ellipse at 50% 90%,#b17d47,#3c2b21 68%);pointer-events:none!important}
.library-door-leaf-v1210{position:absolute;inset:0;display:block;background-image:url('assets/village-v12.10/village-square-cabin-v12.10.webp');background-size:1536px 1024px;background-position:-1074px -433px;background-repeat:no-repeat;transform-origin:0 55%;transform:rotateY(0deg);backface-visibility:hidden;transition:transform 1.05s cubic-bezier(.2,.65,.25,1);pointer-events:none!important}
#journey-viewport[data-entry-building=library] .library-door-leaf-v1210{transform:rotateY(-105deg)}
.hall-door-leaf-v129{background-image:url('assets/village-v12.10/village-square-cabin-v12.10.webp')}
#journey-app[data-motion=still] .lane-world-v1210,#journey-app[data-motion=still] .library-door-leaf-v1210{transition:none!important}
@media(prefers-reduced-motion:reduce){.lane-world-v1210,.library-door-leaf-v1210{transition:none!important}}

/* future-places-v12.10.css */
/* One small native modal, shared by two future rooms. No closed overlay. */
#future-place-dialog:not([open]){display:none!important}
#future-place-dialog{position:fixed;inset:0;width:calc(100% - 40px);max-width:520px;max-height:calc(100vh - 40px);max-height:calc(100svh - 40px);box-sizing:border-box;margin:auto;padding:0;border:2px solid #a7824c;border-radius:14px 20px 13px 17px;background:radial-gradient(ellipse at 12% 0%,#fffbee 0%,#fff6df 52%,#f2dfb7 100%);color:#442b46;box-shadow:0 18px 70px #25172d70,0 0 0 5px #ffe3a317;overflow:auto;overscroll-behavior:contain;text-align:left;pointer-events:auto;isolation:isolate}
#future-place-dialog::backdrop{background:#20182baf;backdrop-filter:blur(3px)}
#future-place-dialog .future-place-paper-v1210{box-sizing:border-box;padding:24px}
#future-place-dialog .future-place-heading-v1210{position:static;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0;padding:0;border:0;background:none;box-shadow:none}
#future-place-dialog #future-place-title{min-width:0;margin:0;padding:0;color:#442b46;font:400 clamp(25px,4.8vw,32px)/1.15 "Quest Display","Trebuchet MS",sans-serif;letter-spacing:0;text-transform:none;text-shadow:none;overflow-wrap:anywhere}
#future-place-dialog .future-place-close-v1210{flex:0 0 auto;min-width:64px;min-height:44px;box-sizing:border-box;padding:9px 12px;border:1px solid #674150;border-radius:8px 10px 8px 9px;background:#51364e;color:#fff8e8;box-shadow:0 2px 0 #302436;font:700 14px/1.4 "Segoe UI",Arial,sans-serif;cursor:pointer;pointer-events:auto}
#future-place-dialog .future-place-close-v1210:hover{background:#704b64}
#future-place-dialog .future-place-close-v1210:focus-visible{outline:3px solid #9c326d;outline-offset:4px}
#future-place-dialog .future-place-status-v1210{display:table;margin:17px 0 18px;padding:6px 9px;border:1px dashed #a97634;border-radius:5px 7px 5px 6px;background:#ffe5a1;color:#593a32;font:700 12px/1.4 "Segoe UI",Arial,sans-serif;text-transform:none;letter-spacing:.02em}
#future-place-dialog #future-place-copy,#future-place-dialog #future-place-note{max-width:none;margin:0 0 14px;padding:0;color:#442b46;font:400 16px/1.65 "Segoe UI",Arial,sans-serif;letter-spacing:0;text-transform:none;overflow-wrap:anywhere}
#future-place-dialog #future-place-note{margin-bottom:0;color:#624b58}
@media(max-width:420px){#future-place-dialog .future-place-paper-v1210{padding:20px}#future-place-dialog .future-place-heading-v1210{gap:10px}}
@media(forced-colors:active){#future-place-dialog{border:2px solid CanvasText}#future-place-dialog .future-place-close-v1210{border:1px solid ButtonText}#future-place-dialog .future-place-close-v1210:focus-visible{outline-color:Highlight}}

/* revision-v12.11.css */
/* A clear view of the physical entrances, while retaining a rich overhead canopy. */
.apple-canopy-v1210{inset:-132px 0 0;clip-path:none}
.apple-bough-left-v1210{--bough-base-x:-6vw}
.apple-bough-right-v1210{--bough-base-x:8vw}
.library-label-fit-v1210{display:flex;align-items:center;justify-content:center;padding:0;font-size:9.6px;line-height:10px;letter-spacing:.05px;rotate:-2deg;white-space:nowrap;color:#412c1e;text-shadow:0 .4px #f6dca599}
.hall-label-fit-v1210{font-size:10.9px;line-height:10.3px}
.hall-label-fit-v1210>span{line-height:10.3px}
#scene-camera #town-lane-sign-v1211{left:1283px;top:449px;width:92px;height:32px;display:flex;gap:4px;align-items:center;justify-content:center;padding:3px 5px;border:1px solid #946b3f;border-radius:3px;background:linear-gradient(8deg,#ba9058,#edce99 35%,#d0a66e);box-shadow:0 1px 1px #4a36294d;font:400 11.2px/1.1 "Quest Display",sans-serif;color:#553b2a;white-space:nowrap;pointer-events:auto!important;cursor:pointer;rotate:-4deg}
#town-lane-sign-v1211:focus-visible{outline:3px dashed #fff1b7;outline-offset:4px}
@media(max-width:600px){.apple-canopy-v1210{inset:-76px 0 0;clip-path:none}.apple-bough-left-v1210{--bough-base-x:-5vw}.apple-bough-right-v1210{--bough-base-x:-16vw}.apple-bough-v1210>.wind-tip{inset:0 auto auto -35%;width:170%;max-width:none;max-height:none;height:auto;aspect-ratio:3/2}}
@media(max-height:540px) and (min-width:601px){.apple-canopy-v1210{inset:-85px 0 0;clip-path:none}}

/* library-sign-v12.12.css */
/* A separate hanging wooden nameplate. The painted open book remains untouched. */
#scene-camera .library-nameplate-v1212{position:absolute;left:980px;top:372px;width:104px;height:46px;display:block;rotate:-2deg;transform-origin:50% 0;pointer-events:none!important;z-index:10;filter:drop-shadow(0 2px 1.8px #42291866)}
#scene-camera .library-nameplate-v1212 svg{display:block;width:104px;height:46px;max-width:none;overflow:visible;pointer-events:none!important}
#scene-camera .library-nameplate-v1212 text{font:400 15.5px "Quest Display","Trebuchet MS",sans-serif;letter-spacing:.12px;fill:#492c1c;stroke:#f9e4bb;stroke-width:.14px;paint-order:stroke fill}

/* building-roles-v12.20.css */
/* Names follow the existing painted sign faces and their perspective. */
#scene-camera .center-label-v1220{font:400 11.7px/10.4px "Quest Display",sans-serif;letter-spacing:0;color:#4c3022;text-shadow:0 .6px #f7dfac}
#scene-camera .center-label-v1220>span{line-height:10.4px}
#scene-camera .tinkerer-label-v1220{font:400 9.2px/10.1px "Quest Display",sans-serif;letter-spacing:0;rotate:7deg;white-space:nowrap;color:#4b3024;text-shadow:0 .5px #f5daab99}
#scene-camera .library-nameplate-v1212 text{font-size:14px;letter-spacing:.1px;stroke-width:.12px}
/* The turquoise door is a crop of this building's original painted door. */
#scene-camera #village-tinkerer-entry-v1220{perspective:360px;isolation:isolate}
.tinkerer-door-recess-v1220{position:absolute;inset:0;display:block;overflow:hidden;border-radius:50% 50% 0 0 / 23% 23% 0 0;background:radial-gradient(ellipse at 50% 82%,#c78b43,#49321c 55%,#25231a 90%);pointer-events:none!important}
.tinkerer-door-leaf-v1220{position:absolute;inset:0;display:block;background-image:url('assets/village-v12.10/village-square-cabin-v12.10.webp');background-size:1536px 1024px;background-position:-286px -399px;background-repeat:no-repeat;transform-origin:0 55%;transform:rotateY(0deg);backface-visibility:hidden;transition:transform .65s cubic-bezier(.2,.65,.25,1);pointer-events:none!important}
#journey-viewport[data-entry-building=tinkerer] .tinkerer-door-leaf-v1220{transform:rotateY(-105deg)}
.hall-door-leaf-v129,.library-door-leaf-v1210{transition-duration:.65s}
#tinkerer-light-v1215 .tinkerer-interior-shade-v1215{transform-origin:145px 440px}
/* Keep the existing map's accessible, normal-flow building key. */
#journey-viewport .journey-map .village-map-buildings-v1220{position:static;inset:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:auto;min-width:0;margin:10px 0 0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
#journey-viewport .journey-map .village-map-buildings-v1220>button{position:static;inset:auto;display:block;box-sizing:border-box;width:auto;min-width:0;min-height:44px;height:auto;margin:0;padding:6px 4px;border:1px solid #9a7852;border-radius:6px;background:#fff2cc;color:#49312c;font:400 12px/1.2 "Quest Display",sans-serif;white-space:normal;text-align:center;box-shadow:none;transform:none;cursor:pointer}
#journey-viewport .journey-map .village-map-buildings-v1220>button:focus-visible{outline:3px solid #79527b;outline-offset:2px}
#journey-app[data-motion=still] .tinkerer-door-leaf-v1220{transition:none!important}
@media(prefers-reduced-motion:reduce){.tinkerer-door-leaf-v1220{transition:none!important}}
@media(max-width:600px){.apple-bough-right-v1210{--bough-base-x:3vw}}

/* deep-woods-sign-v12.13.css */
/* Local v12.13. Load AFTER the current revision styles.
   Actual v12.12 browser diagnosis: legacy .path-entry selectors retained a
   19px label, an extra arrow in ::before, and the obsolete 90px/84px post.
   Keep the existing world anchor and route; give this one plaque a complete,
   deliberately scoped material/layout rule instead of mixing two sign systems. */
#journey-viewport[data-stop=trail] #outside-world > #journey-next.path-entry {
  box-sizing:border-box!important;
  width:max(104px,calc(var(--world-w)*96/1536))!important;
  height:max(44px,calc(var(--world-h)*44/1024))!important;
  min-width:104px!important;
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 8px!important;
  font:400 max(12px,calc(var(--world-w)*10/1536))/1.1 "Quest Display",sans-serif!important;
  white-space:nowrap!important;
  text-align:center!important;
  color:#49312e!important;
  text-shadow:0 1px #fff2d055;
  overflow:visible!important;
  /* Text already contains the single directional arrow. */
}
#journey-viewport[data-stop=trail] #outside-world > #journey-next.path-entry[hidden] {
  display:none!important;
}
#journey-viewport[data-stop=trail] #outside-world > #journey-next.path-entry::before {
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:18% 0!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  translate:none!important;
  transform:none!important;
  rotate:0deg!important;
  border:1px solid #8c6537!important;
  border-radius:3px 5px 3px 4px!important;
  background:linear-gradient(8deg,#bb8e53,#eed8ad 24%,#dfbd86 90%,#ae7d42)!important;
  box-shadow:0 1px 2px #27302255!important;
  opacity:1!important;
  pointer-events:none!important;
  z-index:-1!important;
}
#journey-viewport[data-stop=trail] #outside-world > #journey-next.path-entry::after,
#journey-viewport[data-stop=trail] #outside-world > #journey-next.path-entry:focus-visible::after {
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  top:54%!important;
  bottom:auto!important;
  width:max(7px,calc(var(--world-w)*7/1536))!important;
  height:64%!important;
  max-width:none!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  translate:-50% 0!important;
  transform:none!important;
  rotate:0deg!important;
  background:linear-gradient(90deg,#896139,#bd9762 45%,#725131)!important;
  box-shadow:1px 1px 1px #26351e44!important;
  opacity:1!important;
  pointer-events:none!important;
  z-index:-2!important;
}
#journey-viewport[data-stop=trail] #outside-world > #journey-next.path-entry:focus-visible {
  outline:3px dashed #fff1ac!important;
  outline-offset:4px!important;
}

/* scanlife-shop-v12.16.css */
/* One invention introduction, inside the existing shop panel only. */
#future-place-dialog[data-future-place=tinkerer] #future-place-status{display:none!important}
#scanlife-entry-v125.scanlife-shop-v1216{margin-top:18px;padding-top:18px;border-top:1px solid #d4b78c;pointer-events:auto}
#scanlife-entry-v125[hidden],#scanlife-concept-v125[hidden]{display:none!important}
#scanlife-entry-v125 .scanlife-open-v125{max-width:100%;min-height:48px;text-align:left;cursor:pointer}
#scanlife-entry-v125 .scanlife-open-v125[aria-expanded=true]{box-shadow:0 2px 0 #362738,0 0 0 3px #edcd8a66}
#scanlife-concept-v125.scanlife-note-v1216{position:static;box-sizing:border-box;margin:16px 0 0;padding:17px;border:1px solid #d7bd91;border-radius:10px 14px 10px 13px;background:#fffbee;color:#442b46;max-width:none;max-height:none;overflow:visible}
#scanlife-concept-v125 h3{margin:0 0 12px;font:400 25px/1.2 "Quest Display","Trebuchet MS",sans-serif;color:#442b46;letter-spacing:0}
#scanlife-concept-v125 h3:focus-visible{outline:2px dashed #a42e68;outline-offset:5px;border-radius:2px}
#scanlife-concept-v125 p{max-width:none;margin:0 0 12px;font:400 16px/1.6 "Segoe UI",Arial,sans-serif;color:#442b46}
#scanlife-concept-v125 .scanlife-note-close-v1216{min-height:44px;padding:9px 13px;border:1px solid #805c6b;border-radius:8px;background:#fff5df;color:#51364e;font:700 14px/1.4 "Segoe UI",Arial,sans-serif;cursor:pointer;pointer-events:auto}
#scanlife-concept-v125 .scanlife-note-close-v1216:hover{background:#f5e5c3}
#scanlife-concept-v125 .scanlife-note-close-v1216:focus-visible{outline:3px solid #a42e68;outline-offset:3px}
@media(max-width:420px){#scanlife-concept-v125.scanlife-note-v1216{padding:14px}#scanlife-concept-v125 h3{font-size:23px}#scanlife-entry-v125 .scanlife-open-v125{gap:8px}}
@media(forced-colors:active){#scanlife-concept-v125.scanlife-note-v1216{border-color:CanvasText}.scanlife-badge-v125{border-color:CanvasText}}

/* motion-navigation-v12.20.css */
/* Independent edge controls keep the map, collection and caption clear. */
#journey-viewport>#trail-look-controls{position:absolute;inset:0;z-index:54;display:block!important;pointer-events:none}
#journey-viewport>#trail-look-controls[hidden]{display:none!important}
#journey-viewport>#trail-look-controls>button{position:absolute;top:50%;translate:0 -50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:64px;min-width:44px;min-height:60px;padding:6px 3px;box-sizing:border-box;border:1px solid #8e704e;border-radius:14px 10px 16px 11px;background:linear-gradient(115deg,#f0d6a3f5,#fff4d5f5 55%,#e8c38ef5);color:#4c3549;font:600 12px/1.15 "Segoe UI",sans-serif;box-shadow:0 3px 0 #70503b55;pointer-events:auto;touch-action:manipulation;cursor:pointer}
#journey-viewport>#trail-look-controls>[data-camera-step="-1"]{left:max(8px,env(safe-area-inset-left))}
#journey-viewport>#trail-look-controls>[data-camera-step="1"]{right:max(8px,env(safe-area-inset-right))}
#trail-look-controls .look-arrow-v1220{font:400 24px/1 "Quest Display",sans-serif}
#journey-viewport>#trail-look-controls>button:disabled{opacity:.46;cursor:default}
#journey-viewport>#trail-look-controls>button:not(:disabled):hover{background:#fff6df}
#journey-viewport>#trail-look-controls>button:focus-visible{outline:3px solid #933c72;outline-offset:3px}
/* The two painted source plates share the same transform as their hit planes.
   Their source size must bypass the page's responsive svg max-width rule.
   Keeping viewBox fixed avoids repainting SVG contents on every camera frame. */
#hub-plate-v127,#lane-plate-v1210{width:1536px!important;height:1024px!important;max-width:none!important;max-height:none!important;inset:0 auto auto 0!important;transform-origin:0 0}
@media(max-width:600px){#journey-viewport>#trail-look-controls>button{width:52px;min-height:58px;font-size:11px}}
@media(max-height:540px) and (min-width:601px){#journey-viewport>#trail-look-controls>button{top:48%;width:56px;min-height:52px;font-size:11px}}

/* cast-placement-v12.21.css */
/* Birds and ground neighbours share the existing Grove, without a bird stop. */
#journey-viewport[data-stop=trail] #outside-world>.fork-friends{opacity:1!important;visibility:visible!important;pointer-events:none!important}
#journey-viewport[data-stop=fork] #outside-world>.fork-friends{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
@media(max-width:1050px){#outside-world>#fork-signs{width:max(calc(var(--world-w)*90/1536),135px)!important}#outside-world>#fork-signs>button{min-height:50px!important;font-size:max(calc(var(--world-w)*10.5/1536),13px)!important}}

/* adventures-cabin-v12.22.css */
/* Same cottage, restored to its painted windows. Small wording follows the
   existing wooden sign rather than covering it with a new floating panel. */
#scene-camera .adventures-cabin-label-v1222{font:400 8.2px/9.8px "Quest Display",sans-serif;letter-spacing:0;rotate:7deg;white-space:nowrap;color:#4b3024;text-shadow:0 .5px #f5daab99}
#scene-camera #village-cabin-entry-v1222{perspective:360px;isolation:isolate}
#hall-view #scanlife-entry-v125{max-width:700px;margin:24px 0;padding-top:20px}
/* The unchanged internal door camera key keeps the original turquoise opening. */
#journey-viewport[data-entry-building=tinkerer] .tinkerer-door-leaf-v1220{transform:rotateY(-105deg)}

/* storyteller-arrival-v12.24.css */
/* A single arrival encounter. The underlying village remains the same world. */
.storyteller-arrival-v1224{width:min(980px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 30px);padding:0;border:0;overflow:auto;background:transparent;color:#4e3350;box-shadow:none}
.storyteller-arrival-v1224::backdrop{background:#162b3294;backdrop-filter:blur(2px)}
.storyteller-scene-v1224{display:grid;grid-template-columns:minmax(220px,.78fr) minmax(0,1.2fr);align-items:center;gap:8px;padding:18px 12px 22px}
.storyteller-portrait-v1224{align-self:end;position:relative;min-width:0;filter:drop-shadow(0 13px 10px #17252166)}
.storyteller-portrait-v1224:after{content:"";position:absolute;bottom:0;left:14%;right:14%;height:14px;border-radius:50%;background:#172e2345;filter:blur(8px);z-index:-1}
.storyteller-portrait-v1224 img{display:block;width:100%;height:auto;max-height:590px;object-fit:contain;object-position:center bottom}
.storyteller-dialogue-v1224{position:relative;align-self:center;margin-left:-14px;padding:30px 30px 22px;border:2px solid #bd965d;border-radius:32px 27px 30px 19px;background:radial-gradient(ellipse at 15% 10%,#fffbed,transparent 68%),linear-gradient(110deg,#f2d7a2,#fff0cd 18% 83%,#e4c18b);box-shadow:0 9px 0 #5e443d42,0 16px 28px #112a334d,inset 0 0 18px #bd914b20}
.storyteller-dialogue-v1224:before{content:"";position:absolute;left:-17px;top:36%;width:25px;height:25px;background:#fff1d1;border-left:2px solid #bd965d;border-bottom:2px solid #bd965d;border-radius:0 0 0 8px;transform:rotate(45deg)}
.storyteller-kicker-v1224{margin:0 0 10px;font:700 11px/1.4 "Segoe UI",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#906c43}
#storyteller-title-v1224{margin:0 0 15px;font:800 clamp(27px,3.2vw,39px)/1.08 "Nunito","Trebuchet MS",sans-serif;letter-spacing:-.025em;color:#593557;text-wrap:balance}
#storyteller-title-v1224:focus{outline:none}
.storyteller-dialogue-v1224>p:not(.storyteller-kicker-v1224):not(.storyteller-keyboard-v1224){margin:0 0 13px;font:400 15px/1.52 "Segoe UI",sans-serif;color:#684d4b}
.storyteller-choices-v1224{display:grid;gap:9px;margin-top:18px}
.storyteller-choices-v1224 button{display:grid;grid-template-columns:1fr 24px;gap:3px 10px;align-items:center;min-height:61px;width:100%;padding:11px 16px;border:1px solid #8d6845;border-radius:12px 16px 13px 15px;background:linear-gradient(110deg,#67456c,#503252);color:#fff5d8;text-align:left;box-shadow:0 3px 0 #493040;cursor:pointer;transition:background-color .15s,box-shadow .15s}
.storyteller-choices-v1224 strong{font:800 18px/1.15 "Nunito","Trebuchet MS",sans-serif}
.storyteller-choices-v1224 span{grid-column:1;font:400 12px/1.3 "Segoe UI",sans-serif;color:#f5dfbc}
.storyteller-choices-v1224 i{grid-column:2;grid-row:1/3;justify-self:end;font:400 25px/1 sans-serif}
.storyteller-choices-v1224 button:hover{background:linear-gradient(110deg,#815686,#65406a);box-shadow:0 3px 0 #493040,0 0 0 2px #e5c071}
.storyteller-choices-v1224 button:focus-visible{outline:3px solid #176b76;outline-offset:4px}
.storyteller-keyboard-v1224{margin:14px 0 0;font:400 11px/1.4 "Segoe UI",sans-serif;color:#826b59}
@media(max-width:620px){.storyteller-arrival-v1224{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.storyteller-scene-v1224{display:block;padding:9px 4px 13px}.storyteller-portrait-v1224{width:124px;max-width:38%;margin:0 auto -10px;z-index:1}.storyteller-portrait-v1224 img{max-height:177px;object-fit:contain;object-position:center bottom}.storyteller-dialogue-v1224{margin-left:0;padding:27px 21px 18px;border-radius:24px 21px 24px 15px}.storyteller-dialogue-v1224:before{display:none}.storyteller-kicker-v1224{font-size:10px;letter-spacing:.06em;margin-bottom:8px}#storyteller-title-v1224{font-size:28px;margin-bottom:11px}.storyteller-dialogue-v1224>p:not(.storyteller-kicker-v1224):not(.storyteller-keyboard-v1224){font-size:14px;line-height:1.45;margin-bottom:11px}.storyteller-choices-v1224{margin-top:13px;gap:8px}.storyteller-choices-v1224 button{min-height:62px;padding:10px 13px}.storyteller-choices-v1224 strong{font-size:17px}.storyteller-choices-v1224 span{font-size:12px}.storyteller-keyboard-v1224{font-size:10px}}
@media(max-height:530px) and (min-width:621px){.storyteller-scene-v1224{grid-template-columns:minmax(180px,.65fr) minmax(0,1.2fr);padding:7px 8px 12px}.storyteller-portrait-v1224 img{max-height:390px}.storyteller-dialogue-v1224{padding:19px 24px 14px}#storyteller-title-v1224{font-size:30px;margin-bottom:10px}.storyteller-kicker-v1224{margin-bottom:7px}.storyteller-dialogue-v1224>p:not(.storyteller-kicker-v1224):not(.storyteller-keyboard-v1224){font-size:14px;margin-bottom:9px}.storyteller-choices-v1224{gap:7px;margin-top:12px}.storyteller-choices-v1224 button{min-height:55px;padding:9px 13px}.storyteller-keyboard-v1224{margin-top:9px}}
@media(prefers-reduced-motion:reduce){.storyteller-choices-v1224 button{transition:none}.storyteller-arrival-v1224::backdrop{backdrop-filter:none}}

/* market-shops-v12.25.css */
/* The market doors are in-world; this reading surface appears only on entry. */
.market-shop-dialog-v1225{width:min(920px,calc(100% - 28px));max-width:none;max-height:calc(100dvh - 28px);padding:0;border:2px solid #ae8752;border-radius:24px 20px 26px 18px;overflow:auto;background:radial-gradient(ellipse at 12% 10%,#fff9e8,transparent 70%),linear-gradient(110deg,#ecd0a1,#fff0d0 24% 82%,#e8c796);color:#51374f;box-shadow:0 7px 0 #5e443747,0 22px 65px #1c281768}
.market-shop-dialog-v1225::backdrop{background:#182b2c9c}
.market-shop-topline-v1225{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 19px 10px;background:linear-gradient(100deg,#f7e4bd,#fff3d7 60%,#ebcea1);border-bottom:1px solid #c6a276}
.market-shop-topline-v1225 p{margin:0;color:#755837;font:700 12px/1.4 "Segoe UI",sans-serif;letter-spacing:.035em}
.market-shop-topline-v1225 button{flex:none;min-height:44px;padding:8px 13px;border:1px solid #8f7053;border-radius:11px 13px 10px 12px;background:#fff6df;color:#50364e;font:700 14px/1.2 "Segoe UI",sans-serif;cursor:pointer}
.market-shop-topline-v1225 button span{margin-left:6px;font-size:19px;vertical-align:-1px}
.market-shop-body-v1225{display:grid;grid-template-columns:minmax(230px,.92fr) minmax(0,1fr);align-items:start;gap:28px;padding:23px 26px 29px}
.market-shop-art-v1225{margin:0;min-width:0;align-self:start}
.market-shop-art-v1225 img{display:block;width:auto;max-width:100%;height:auto;max-height:min(65dvh,600px);margin:0 auto;border-radius:12px;object-fit:contain;box-shadow:0 4px 10px #6b4e352b}
.market-shop-art-v1225 figcaption{margin-top:10px;text-align:center;color:#7a644e;font:400 11px/1.4 "Segoe UI",sans-serif}
.market-shop-copy-v1225{padding-top:10px}
.market-shop-eyebrow-v1225{margin:0 0 9px;color:#9a683d;font:700 11px/1.4 "Segoe UI",sans-serif;letter-spacing:.09em;text-transform:uppercase}
#market-shop-title-v1225{margin:0 0 16px;color:#5c3859;font:400 clamp(26px,3.2vw,37px)/1.12 "Quest Display","Trebuchet MS",sans-serif;text-wrap:balance}
#market-shop-copy-v1225{margin:0 0 14px;color:#694f47;font:400 16px/1.55 "Segoe UI",sans-serif}
.market-shop-level-v1225{display:inline-block;margin:0 0 20px;padding:5px 10px;border:1px solid #c6a576;border-radius:8px;color:#795b3c;font:600 12px/1.4 "Segoe UI",sans-serif;background:#fff5dd}
.market-shop-coming-v1225{padding:15px 16px 14px;border:1px dashed #b4996d;border-radius:14px 11px 15px 12px;background:#fff8e8a8}
#market-shop-status-v1225{margin:0 0 7px;color:#694761;font:400 21px/1.2 "Quest Display","Trebuchet MS",sans-serif}
.market-shop-coming-v1225 p:last-child{margin:0;color:#77604c;font:400 14px/1.5 "Segoe UI",sans-serif}
.market-shop-book-note-v1225{margin:21px 0 12px;color:#705a48;font:400 14px/1.5 "Segoe UI",sans-serif}
.market-shop-books-v1225{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px;width:100%;padding:11px 16px;border:1px solid #483047;border-radius:13px 10px 14px 11px;background:#63406a;color:#fff3d7;font:700 15px/1.25 "Segoe UI",sans-serif;box-shadow:0 3px 0 #493040;cursor:pointer}
.market-shop-books-v1225 span{font-size:24px;line-height:1}
.market-shop-dialog-v1225 button:focus-visible{outline:3px solid #146673;outline-offset:3px}
.market-shop-dialog-v1225 button:hover{filter:brightness(1.07)}
@media(max-width:650px){.market-shop-dialog-v1225{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:20px 18px 21px 16px}.market-shop-topline-v1225{padding:8px 12px;gap:10px}.market-shop-topline-v1225 p{font-size:11px;max-width:65%}.market-shop-body-v1225{display:block;padding:15px 19px 23px}.market-shop-art-v1225 img{max-height:310px}.market-shop-art-v1225 figcaption{margin-top:7px;font-size:10px}.market-shop-copy-v1225{padding-top:20px}#market-shop-title-v1225{font-size:29px;margin-bottom:13px}#market-shop-copy-v1225{font-size:15px;line-height:1.5}.market-shop-level-v1225{margin-bottom:16px}.market-shop-book-note-v1225{margin-top:17px}.market-shop-coming-v1225{padding:13px 14px}}
@media(max-height:520px) and (min-width:651px){.market-shop-body-v1225{padding:16px 22px 22px;gap:23px;grid-template-columns:minmax(170px,.75fr) minmax(0,1fr)}.market-shop-art-v1225 img{max-height:270px}.market-shop-copy-v1225{padding-top:0}#market-shop-title-v1225{font-size:30px}.market-shop-book-note-v1225{margin-top:15px}}
@media(prefers-reduced-motion:reduce){.market-shop-dialog-v1225{scroll-behavior:auto}}

/* market-world-v12.25.css */
/* Native shop entrances follow the same source plane as the painted market. */
.market-portal-v1225{position:absolute;display:block;box-sizing:border-box;min-width:var(--lane-control-size,56px);min-height:var(--lane-control-size,56px);padding:0;border:0;border-radius:12px;background:transparent;box-shadow:none;pointer-events:auto!important;cursor:pointer;touch-action:manipulation;transition:background .15s}
.market-portal-v1225:hover{background:linear-gradient(180deg,#ffdc7408,#ffdd772e);box-shadow:inset 0 0 20px #ffdfa127}
.market-portal-v1225:focus-visible{outline:3px solid #fff3ba;outline-offset:3px;box-shadow:0 0 0 5px #62405b}
.market-shop-map-v1225{display:none;border-top:1px solid #bea371;margin-top:12px;padding-top:10px}
#journey-viewport[data-stop=lane] .market-shop-map-v1225{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.market-shop-map-v1225 h3{grid-column:1/-1;margin:0 0 4px;font:400 22px/1.1 'Quest Display',sans-serif;color:#593854}
.market-shop-map-v1225 button{min-height:44px;border:1px solid #b69a71;border-radius:9px;background:#fff6dd;padding:7px 9px;text-align:left;color:#583b50;font:600 12px/1.25 'Segoe UI',sans-serif;cursor:pointer}
.market-shop-map-v1225 button:focus-visible{outline:3px solid #1a707c;outline-offset:2px}
.market-shop-map-v1225 p{grid-column:1/-1;margin:3px 0;font:400 11px/1.4 'Segoe UI',sans-serif;color:#7e674a}
@media(prefers-reduced-motion:reduce){.market-portal-v1225{transition:none}}

/* market-landscape-v12.26.css */
/* Wide landscape: illustration and hit plane use one seasonal scene contract. */
.lane-world-v1210{inset:-5%}
#lane-plate-v1210{width:2172px!important;height:724px!important;max-width:none!important;max-height:none!important}
#lane-source-plane-v1210{width:2172px;height:724px}
.lane-return-label-v1210{left:115px;top:460px}

/* desktop-navigation-v12.27.css */
/* Map-based destination navigation; retain the established camera and responsive pan rules. */
/* Remove the old overscan and perspective crop in the two flat source scenes.
   The camera's uniform cover frame, rather than CSS stretching, sizes both. */
#journey-viewport[data-navigation-mode-v1227=desktop]:not([data-transit]):not([data-entry-building]):is([data-stop=glade],[data-stop=village],[data-stop=lane]) #scene-camera{transform:none!important}
#journey-viewport[data-navigation-mode-v1227=desktop] :is(#hub-world-v127,#lane-world-v1210){inset:0!important}
#journey-viewport[data-navigation-mode-v1227=desktop]>#trail-look-controls{display:none!important}
#journey-viewport[data-navigation-mode-v1227=desktop][data-stop=glade]:not([data-transit]):not([data-entry-building]) .village-friends{opacity:1!important;visibility:visible!important}

/* world-foundation-v12.28.css */
/* Destination information stays in normal document flow. */
.world-roles-v1228{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px;margin:24px 0 0;padding:18px 0;border-top:1px solid #b8956666;border-bottom:1px solid #b8956666}
.world-roles-v1228>div{min-width:0}.world-roles-v1228 dt{font:700 .9375rem/1.4 "Segoe UI",Arial,sans-serif;color:#56364f}.world-roles-v1228 dd{margin:5px 0 0;font:400 .875rem/1.5 "Segoe UI",Arial,sans-serif;color:#624d52}
#journey-viewport .village-map-buildings-v1220>button>span{display:block;margin-top:4px;font:400 10px/1.3 "Segoe UI",Arial,sans-serif}
/* This one actor uses its original canvas ratio, with alpha-aware foot anchors. */
#scene-camera .character-habitat-v1210[data-habitat-key=gnome] .habitat-actor-v1210{object-fit:contain!important;aspect-ratio:875/800}
/* Inactive Grove layers must not request their old CSS fallback images. */
#journey-viewport{background-image:none!important}
#journey-viewport:is([data-stop=trail],[data-stop=fork],[data-stop=bridge],[data-stop=garden]){background-image:url('assets/grove-v12.8/grove-fork-v12.8.webp')!important}
#journey-viewport .outside-world .natural-habitat-cover{background-image:none!important}
#journey-viewport:is([data-stop=trail],[data-stop=fork],[data-stop=bridge],[data-stop=garden]) .outside-world .natural-habitat-cover{background-image:url('assets/grove-v12.8/grove-fork-v12.8.webp')!important}
#journey-viewport[data-assets-restoring]{background-image:none!important}
#journey-viewport[data-assets-restoring] #scene-camera{visibility:hidden}
/* An explicit nonanimated camera request also applies to the CSS woods camera. */
#journey-viewport[data-camera-instant-v1229=true] #scene-camera,#journey-viewport[data-camera-instant-v1229=true] .outside-world{transition:none!important}
/* A moving hit plane is unavailable until its actual transition finishes. */
#journey-viewport[data-scene-interaction-ready-v1229=false] [data-workbook-find]{visibility:hidden!important;pointer-events:none!important}
/* Named desktop destinations and the caption are one vertical stack. Its
   normal-flow rows remain separate when a title wraps or Info is expanded. */
#journey-viewport[data-navigation-mode-v1227=desktop] .journey-reading-dock{position:absolute;top:auto;left:50%;bottom:24px;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(1200px,calc(100% - 48px));max-height:calc(100dvh - 144px)}
#journey-viewport[data-navigation-mode-v1227=desktop] .journey-reading-dock>#desktop-destinations-v1227{position:static;inset:auto;translate:none;flex:0 0 auto;align-self:center;width:max-content;max-width:100%}
#journey-viewport[data-navigation-mode-v1227=desktop] .journey-reading-dock>.journey-story{flex:0 1 auto;min-height:58px;width:min(400px,100%);max-height:none}
@media(max-width:600px){.world-roles-v1228{grid-template-columns:1fr;gap:14px;margin-top:20px}}

/* starter-adventure-v12.28.css */
.starter-adventure-v1228{box-sizing:border-box;width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:2px solid #71543b;border-radius:22px;color:#2e3f35;background:#fff9e9;box-shadow:0 20px 70px #142e364f;overscroll-behavior:contain}
.starter-adventure-v1228::backdrop{background:#18372dcc;backdrop-filter:blur(3px)}
.starter-paper-v1228{padding:clamp(18px,3.5vw,32px);font-family:inherit;line-height:1.55}
.starter-heading-v1228{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.starter-heading-v1228 h2{margin:3px 0 8px;color:#2c493c;font-size:clamp(1.5rem,3vw,2rem);line-height:1.2}.starter-kicker-v1228{font-size:.78rem;font-weight:800;letter-spacing:.065em;text-transform:uppercase;margin:0;color:#675239}
.starter-adventure-v1228 button,.starter-adventure-v1228 a,.starter-tray-button-v1228{box-sizing:border-box;min-width:44px;min-height:44px;border:2px solid #416251;border-radius:12px;padding:10px 16px;font:inherit;font-weight:750;line-height:1.3;background:#fffdf6;color:#2c493c;cursor:pointer;touch-action:manipulation}.starter-adventure-v1228 button:hover,.starter-tray-button-v1228:hover{background:#e9f0d7}.starter-adventure-v1228 button:disabled{opacity:.7;cursor:default}.starter-adventure-v1228 button:focus-visible,.starter-adventure-v1228 a:focus-visible,.starter-tray-button-v1228:focus-visible{outline:3px solid #2d607d;outline-offset:3px}.starter-adventure-v1228 h2:focus,.starter-adventure-v1228 h3:focus{outline:none}.starter-primary-v1228{background:#365b47!important;color:#fffdf2!important}.starter-primary-v1228:hover{background:#264c3a!important}.starter-subtle-v1228{border-color:#9b8a72!important;font-size:.9rem!important}
.starter-friends-v1228{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.starter-friend-v1228{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px!important;background:#f0f3df!important;border-color:#bac9a1!important;text-align:center}.starter-friend-v1228 img{width:105px;height:105px;object-fit:contain}.starter-friend-v1228 strong{font-size:1.2rem}.starter-friend-v1228 span{font-size:.88rem;font-weight:500}.starter-friend-v1228[aria-pressed=true]{border-color:#365b47!important;box-shadow:inset 0 0 0 1px #365b47}
.starter-story-v1228{display:grid;grid-template-columns:104px minmax(0,1fr);gap:18px;align-items:center;background:#eef1df;border:1px solid #c5cfad;border-radius:16px;padding:16px;margin:20px 0}.starter-story-v1228 img{width:100%;height:110px;object-fit:contain}.starter-story-v1228 h3{margin:0;font-size:1.25rem}.starter-story-v1228 p{margin:8px 0 0}.starter-steps-v1228{padding-left:1.5em}.starter-steps-v1228 li{margin:10px 0;padding-left:4px}.starter-actions-v1228{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.starter-actions-v1228>*{flex:0 1 auto}.starter-paths-v1228{display:flex;gap:8px;flex-wrap:wrap;padding:0;margin:12px 0;list-style:none}.starter-paths-v1228 button{font-size:.9rem}.starter-paths-v1228 .starter-found-v1228{background:#e8eddf;border-color:#b1c09c}.starter-note-v1228,.starter-save-v1228{font-size:.88rem;color:#52634f}.starter-save-v1228{border-top:1px solid #ded4ba;margin:20px 0 0;padding-top:14px}.starter-feedback-v1228{margin:14px 0 0;min-height:1.55em;font-weight:700;color:#31523d}.starter-feedback-v1228:empty{display:none}.starter-tray-button-v1228{width:100%;margin:10px 0;background:#f1eddb}
.starter-question-v1228 h3{font-size:1.25rem;margin:14px 0 8px}.starter-question-v1228 .starter-equation-v1228{display:flex;gap:12px;align-items:center;justify-content:center;font-size:1.8rem;font-weight:800;margin:20px 0 10px}.starter-group-v1228{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:210px;background:#f0f2e2;border-radius:14px;padding:10px}.starter-group-v1228 img{width:clamp(28px,6vw,40px);height:clamp(28px,6vw,40px);object-fit:contain}.starter-number-v1228{display:block;text-align:center;font-size:1.1rem;font-weight:750;margin-top:5px}.starter-answer-choices-v1228{display:flex;gap:12px;justify-content:center;margin:18px 0}.starter-answer-choices-v1228 button{min-width:64px;min-height:56px;font-size:1.3rem}.starter-answer-choices-v1228 button[aria-pressed=true]{background:#d9eac9;border-color:#365b47}.starter-complete-v1228{padding:18px;background:#eef3d7;border:2px solid #b0c294;border-radius:16px}.starter-complete-v1228 h3{margin:0 0 8px}.starter-reset-v1228{padding:18px;background:#fff1d9;border:1px solid #c8a86d;border-radius:16px}
@media(max-width:460px){.starter-adventure-v1228{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:16px}.starter-paper-v1228{padding:16px}.starter-heading-v1228{gap:8px}.starter-heading-v1228 button{padding:9px 10px}.starter-friends-v1228{gap:10px}.starter-friend-v1228{padding:14px 10px!important}.starter-friend-v1228 img{width:86px;height:90px}.starter-story-v1228{grid-template-columns:70px minmax(0,1fr);gap:12px;padding:12px}.starter-story-v1228 img{height:85px}.starter-actions-v1228>*{flex:1 1 100%}.starter-question-v1228 .starter-equation-v1228{gap:6px}.starter-group-v1228{padding:7px;gap:3px}}
@media(prefers-reduced-motion:reduce){.starter-adventure-v1228,.starter-adventure-v1228 *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* resident-characters-v12.29.css */
/* Complete original resident artwork shares the unchanged scenery camera.
   Single static poses remain planted; the native foreground stays in place. */
#scene-camera .resident-v1229>.habitat-actor-plane-v1210{z-index:3!important;translate:0 0!important;transition:none!important}
#scene-camera .resident-v1229 .habitat-actor-v1210{left:var(--resident-x)!important;top:var(--resident-y)!important;width:var(--resident-w)!important;height:var(--resident-h)!important;object-fit:contain!important;transform:scaleX(var(--resident-mirror,1))!important;filter:brightness(.9) saturate(.92)!important;transition:none!important;animation:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important}
#scene-camera .resident-v1229 .habitat-contact-v1211{display:block!important;left:var(--resident-shadow-x)!important;top:var(--resident-shadow-y)!important;width:var(--resident-shadow-w)!important;height:var(--resident-shadow-h)!important;background:radial-gradient(ellipse,#19251a66,transparent 73%);z-index:-1}
#scene-camera .resident-v1229>.habitat-foreground-v1210{z-index:2!important}
#scene-camera .resident-v1229>.habitat-cue-v1210{z-index:4!important;border-radius:35%!important}
#scene-camera .resident-v1229>.habitat-cue-v1210:focus-visible{outline:var(--habitat-ring-size,2px) solid #fff4ca!important;outline-offset:var(--habitat-ring-size,2px)!important}
#scene-camera .resident-v1229>.habitat-cue-v1210>.habitat-cue-mark-v1210{border-style:solid}
.resident-cue-label-v1229{position:absolute;left:50%;top:95%;translate:-50% 0;white-space:nowrap;border:1px solid #795432;border-radius:5px;padding:3px 6px;color:#432b3c;background:#fff1ca;font:700 var(--resident-label-size,12px)/1.2 "Segoe UI",Arial,sans-serif;opacity:0;pointer-events:none}
.habitat-cue-v1210:is(:hover,:focus-visible)>.resident-cue-label-v1229{opacity:1}
.resident-greeting-v1229{box-sizing:border-box;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:2px solid #76532e;border-radius:16px;background:#fff4d8;color:#432b3c;box-shadow:0 12px 45px #15281766;text-align:center}
.resident-greeting-v1229::backdrop{background:#18241d80}
.resident-greeting-v1229>img{display:block;width:auto;height:112px;max-width:150px;object-fit:contain;margin:3px auto 12px}
.resident-greeting-v1229 h2{font:400 28px/1.15 "Quest Display",Georgia,serif;margin:0 0 12px}
.resident-greeting-v1229 p{font:400 15px/1.5 "Segoe UI",Arial,sans-serif;margin:10px 0 16px}
.resident-greeting-v1229 .resident-close-v1229{display:block;margin:0 0 8px auto;border:1px solid #876139;border-radius:6px;background:#f6e3b6;color:#432b3c;min-height:40px;padding:8px 12px;font:600 14px/1.2 "Segoe UI",Arial,sans-serif}
.resident-greeting-v1229 button:focus-visible{outline:3px solid #76532e;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.resident-v1229,.resident-v1229 *{animation:none!important;transition:none!important}}
/* A very short, wide Grove is a framed storybook spread: complete native
   scenery on the left, its existing directions in a clear right-hand rail.
   No resident is moved independently of its ground, tree or foreground. */
#journey-viewport[data-stop=trail][data-resident-frame-v1231=short-wide]{background-color:#153027!important;background-image:radial-gradient(ellipse at 40% 58%,#294c38 0,#1e3d2d 43%,#10251e 100%)!important}
#journey-viewport[data-stop=trail][data-resident-frame-v1231=short-wide] .trail-plate{border-radius:8px;box-shadow:0 0 28px 12px #091b13aa}
#journey-viewport[data-stop=trail][data-resident-frame-v1231=short-wide] .journey-reading-dock{left:auto;right:24px;bottom:24px;translate:0 0;width:240px;max-height:calc(100dvh - 116px);align-items:stretch}
#journey-viewport[data-stop=trail][data-resident-frame-v1231=short-wide] .journey-reading-dock>#desktop-destinations-v1227{width:100%;justify-content:center}
/* The existing Back control needs its own clear HUD space in short compact
   landscape; beside the245px brand it overlaps the Owl's natural perch. */
@media (min-width:601px) and (max-height:540px) and (orientation:landscape){
 body:has(#journey-app[data-view=scene] #journey-viewport[data-stop=trail][data-navigation-mode-v1227=compact]) #site-back.site-back{position:fixed;left:50%;right:auto;top:12px;bottom:auto;translate:-50% 0;transform:none}
}

/* starter-rewards-v12.29.css */
/* Standalone free pictures, separate from all workbook covers and interiors. */
.cq-reward-screen {
  color: #27382b;
  width: 100%;
  box-sizing: border-box;
  padding: 0 2px 12px;
}
.cq-reward-screen-title {
  margin: 0 0 8px;
  color: #244c38;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.45rem, 4vw, 1.9rem);
  line-height: 1.2;
}
.cq-reward-intro, .cq-reward-print-hint, .cq-reward-status {
  margin: 8px 0 12px;
  max-width: 52ch;
  font-size: 1rem;
  line-height: 1.5;
}
.cq-reward-controls { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 10px; }
.cq-reward-controls button {
  cursor: pointer;
  min-height: 46px;
  border: 2px solid #36593c;
  border-radius: 12px;
  padding: 10px 16px;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
}
.cq-reward-controls .cq-reward-print { color: #fffdf7; background: #315b3b; }
.cq-reward-controls .cq-reward-return { color: #2d4f35; background: #fffdf7; }
.cq-reward-controls button:focus-visible { outline: 3px solid #275d90; outline-offset: 3px; }
.cq-reward-controls button:disabled { cursor: wait; opacity: .65; }
.cq-reward-print-hint { font-size: .9rem; }
.cq-reward-status { font-size: .9rem; min-height: 1.5em; }
.cq-reward-picture {
  --cq-reward-outline: #82907c;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: 100%;
  max-width: 480px;
  aspect-ratio: 178 / 243;
  margin: 14px auto 0;
  padding: 7% 5% 5%;
  overflow: hidden;
  border: 1px solid var(--cq-reward-outline);
  border-radius: 3px;
  background: #fff;
  color: #2f4937;
  text-align: center;
  box-shadow: 0 8px 22px #293f2720;
  font-family: Georgia, 'Times New Roman', serif;
}
.cq-reward-picture::after {
  content: '';
  position: absolute;
  inset: 9px;
  border: 1px solid #bdc5b7;
  pointer-events: none;
}
.cq-reward-picture-heading { z-index: 1; width: 100%; }
.cq-reward-picture .cq-reward-brand {
  margin: 0;
  font-size: clamp(1.2rem, 3.8vw, 1.6rem);
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .01em;
}
.cq-reward-picture .cq-reward-edition {
  margin: 8px 0 0;
  color: #53654b;
  font-family: Arial, sans-serif;
  font-size: clamp(.6rem, 1.9vw, .8rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.cq-reward-character-frame {
  z-index: 1;
  width: 100%;
  min-height: 0;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3% 0;
}
.cq-reward-picture .cq-reward-character {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  filter: none;
  transform: none;
}
.cq-reward-picture .cq-reward-thankyou {
  z-index: 1;
  margin: 0;
  font-size: clamp(1.3rem, 4.5vw, 1.9rem);
  font-weight: 700;
  line-height: 1.2;
}
.cq-reward-picture .cq-reward-kindness {
  z-index: 1;
  margin: 8px 0 0;
  font-size: clamp(.78rem, 2.4vw, 1rem);
  line-height: 1.3;
}
.cq-reward-picture-footer {
  z-index: 1;
  margin: 14px 0 0;
  font: .7rem/1.3 Arial, sans-serif;
  color: #53654b;
}
.cq-reward-leaves {
  position: absolute;
  z-index: 0;
  top: 10px;
  left: 8px;
  width: 16%;
  height: auto;
  fill: none;
  stroke: var(--cq-reward-outline);
  stroke-width: 1.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cq-reward-leaves:last-child { top: auto; left: auto; right: 8px; bottom: 10px; transform: rotate(180deg); }
.cq-starter-print-sheet { display: none; }
@media (max-width: 380px) {
  .cq-reward-controls { flex-direction: column; }
  .cq-reward-controls button { width: 100%; }
}
/* Portrait follows the chosen printer's A4 or Letter paper. A fixed 243 mm
   picture fits both page heights with 12 mm margins; no browser UI is printed. */
@page { size: portrait; margin: 12mm; }
@media print {
  body.cq-starter-printing {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }
  body.cq-starter-printing > * { display: none !important; }
  body.cq-starter-printing > #cq-starter-print-sheet {
    display: flex !important;
    position: static !important;
    align-items: flex-start !important;
    justify-content: center !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  #cq-starter-print-sheet .cq-reward-picture {
    width: 178mm !important;
    max-width: 100% !important;
    height: 243mm !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 14mm 10mm 12mm !important;
    border: .25mm solid #82907c !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-inside: avoid;
    page-break-inside: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  #cq-starter-print-sheet .cq-reward-picture::after { inset: 3mm; border-width: .2mm; }
  #cq-starter-print-sheet .cq-reward-brand { font-size: 22pt; }
  #cq-starter-print-sheet .cq-reward-edition { margin-top: 3mm; font-size: 10pt; }
  #cq-starter-print-sheet .cq-reward-character-frame { flex: 1; height: 156mm; padding: 4mm 0; }
  #cq-starter-print-sheet .cq-reward-character { width: 100%; height: 100%; object-fit: contain; }
  #cq-starter-print-sheet .cq-reward-thankyou { font-size: 24pt; }
  #cq-starter-print-sheet .cq-reward-kindness { margin-top: 3mm; font-size: 12pt; }
  #cq-starter-print-sheet .cq-reward-picture-footer { margin-top: 5mm; font-size: 8pt; }
  #cq-starter-print-sheet .cq-reward-leaves { top: 3mm; left: 3mm; width: 24mm; }
  #cq-starter-print-sheet .cq-reward-leaves:last-child { top: auto; left: auto; right: 3mm; bottom: 3mm; }
}

.sample-hold-v1232{align-content:start}.sample-hold-v1232 h4{font-size:1.1rem;margin:0 0 .75rem}.sample-hold-v1232 p{max-width:55ch}.sample-hold-v1232 button:disabled{opacity:.7;cursor:default}.sample-hold-v1232 .section-intro{margin-bottom:1.5rem}
/* catalogue-eight-v12.33.css */
/* Eight books retain the Village's illustrated notebook treatment. */
.catalogue-shelf{row-gap:24px}.catalogue-shelf:before{display:none}.catalogue-book-tab{background:#fff8e380;border-color:#d9c59d}.catalogue-book-name{font-size:21px}.book-level-v1233{display:block;font-size:12px;line-height:1.5;color:#594363;margin-bottom:8px}.catalogue-choice-hint-v1233{font-size:13px;color:#6b5172;line-height:1.6;margin:16px 3px 0}.catalogue-dossier{scroll-margin-top:120px}.catalogue-dossier:focus{outline:3px solid #a34283;outline-offset:5px}.sample-entry-actions-v1233{display:flex;gap:16px;flex-wrap:wrap}.book-sample img{height:auto;object-fit:contain}.book-sample:focus-visible{outline:3px solid #a34283;outline-offset:3px}#page-dialog{width:min(960px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}#page-dialog .modal-toolbar{position:sticky;top:0}#modal-image{height:auto;max-width:none}.image-viewport.fit #modal-image{width:100%;max-width:1000px}#page-dialog .modal-instructions{font-size:12px;line-height:1.5}@media(max-width:760px){.catalogue-dossier{scroll-margin-top:126px}.book-level-v1233{font-size:11px}.sample-entry-actions-v1233{gap:12px}.sample-entry-actions-v1233 .button{width:100%;justify-content:center}#page-dialog .modal-toolbar h2{font-size:16px;line-height:1.3}#page-dialog .zoom-controls{gap:6px;flex-wrap:wrap}#page-dialog .tool-button,#page-dialog .close-button{min-width:44px;min-height:44px}.catalogue-book-name{font-size:20px}}@media(max-width:400px){.catalogue-book-name{font-size:18px}}@media(prefers-reduced-motion:reduce){.catalogue-dossier{scroll-behavior:auto}}

/* grove-single-area-v12.35.css */
/* One shared Grove, including its two route boards. No screen-level shortcut row. */
#journey-viewport[data-stop=trail] #outside-world>#fork-signs:not([hidden]){display:flex!important;left:54.0365%!important;top:46.1%!important;width:calc(var(--world-w)*142/1536)!important;gap:calc(var(--world-h)*10/1024)!important;z-index:10}
#journey-viewport[data-stop=trail] #outside-world>#fork-signs>button{height:calc(var(--world-h)*34/1024)!important;font-size:calc(var(--world-w)*14/1536)!important;line-height:1.15!important}
#journey-viewport[data-stop=trail] #journey-next{display:none!important}
#village-map .map-stop-trail{top:28%!important;left:35%!important;width:31%!important}
.raven-grove-v1235{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.raven-grove-v1235>.habitat-actor-plane-v1210{position:absolute;inset:0}
/* The map's paper scrolls inside the window, below header controls. */
#village-map>.village-map-sheet{overscroll-behavior:contain;scroll-padding:10px}
#village-map button:focus-visible{outline:3px solid #71446a;outline-offset:2px}

/* interiors-v12.38.css */
/* Local room prototype: native timber, shelves and readable paper surfaces. */
#community-hall-shell{--room-ink:#44372f;--room-teal:#315f58;position:relative;isolation:isolate;padding-top:88px;padding-bottom:64px;color:var(--room-ink);background:#eee2c7 url('assets/interiors-v12.38/room-frame.svg') center top/1440px 850px repeat-y}
#community-hall-shell:before{content:"";position:absolute;inset:0 0 auto;height:440px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 55% 15%,#fff9dfc9,transparent 70%)}
#journey-app:is([data-view="hall"],[data-view="catalogue"],[data-view="parents"],[data-view="notes"])>.journey-header{min-height:86px;padding:12px 26px;background:#f3e9ceef;border-bottom:7px solid #956039;box-shadow:0 4px 0 #482d2533;backdrop-filter:blur(8px)}
#journey-app:is([data-view="hall"],[data-view="catalogue"],[data-view="parents"],[data-view="notes"])>.journey-header .journey-brand{width:260px;max-width:38vw}
.community-hall-nav-v128{width:min(1100px,calc(100% - 64px));gap:6px 22px;padding:4px 0 9px;border-bottom:1px solid #9a805f66}
.community-hall-nav-v128>button{color:#475d4e;font-size:14px;padding:6px 2px;min-height:44px}
.community-hall-nav-v128>button[aria-current="page"]{color:#633c26;border-bottom-color:#a36a3e}
.community-hall-nav-v128>button:last-child{margin-left:auto}
#community-hall-shell>.journey-content-view{padding-top:0!important}
.room-heading-v1238{position:relative;width:min(1100px,calc(100% - 64px));margin:24px auto 14px;padding-right:195px;min-height:100px}
.room-heading-v1238 .room-kicker{margin:0 0 5px;color:#87603d;font:750 11px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase}
#catalogue-view .view-title,#hall-view .view-title{width:auto;margin:0 0 10px;font:400 clamp(30px,3.4vw,43px)/1.1 "Quest Display",var(--round);letter-spacing:0;color:#4c3931}
.room-heading-v1238>p:last-of-type{font:400 15px/1.55 var(--body);max-width:680px;margin:0;color:#615148}
.room-heading-v1238>.room-browse-copy-v1238,.room-heading-v1238>.room-entry-copy-v1238{font:400 15px/1.55 var(--body);max-width:680px;margin:0;color:#615148}
.room-entry-copy-v1238{display:none}
#catalogue-view[data-workbook-entry] .room-browse-copy-v1238,#catalogue-view[data-workbook-entry] .catalogue-choice-hint-v1233{display:none}
#catalogue-view[data-workbook-entry] .room-entry-copy-v1238{display:block}
.room-window-v1238{position:absolute;width:132px;height:124px;right:22px;top:-10px;border:8px solid #a16e43;border-radius:60px 60px 7px 7px;box-shadow:0 0 0 3px #705136,0 5px 0 #72553940;overflow:hidden;background:#bbd8cf;pointer-events:none}
.room-window-v1238 img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;filter:saturate(.85) brightness(1.05)}
.room-window-v1238:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 46%,#9c6b4390 46% 53%,transparent 53%),linear-gradient(transparent 53%,#9c6b4390 53% 60%,transparent 60%);box-shadow:inset 0 0 15px #4a3a2c44}
#catalogue-view .quest-catalogue{width:min(1100px,calc(100% - 64px));max-width:1100px;margin:0 auto 36px;padding:0}
#catalogue-view .catalogue-intro{padding:0;max-width:none}
#catalogue-view .catalogue-intro #catalogue-note{max-width:none;font-size:13px;line-height:1.6;color:#6c5746;margin:0 0 9px}
#catalogue-view #catalogue-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
#catalogue-view .catalogue-finder{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 18px;margin:0 0 7px;border:1px solid #b69670;border-radius:8px 13px 6px 10px;background:#faf1d7;box-shadow:0 3px 0 #c2a17a}
#catalogue-view .catalogue-finder:before,#catalogue-view .catalogue-finder:after{display:none}
.level-choice-v1238{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:750;color:#4e4439}
#catalogue-view .catalogue-finder select{font-size:14px;min-height:44px;max-width:100%;border:1px solid #ac9679;background:#fffcf3;color:#43372e;border-radius:5px;padding:8px 28px 8px 10px}
.room-filter-more-v1238{position:relative;margin-left:auto}
.room-filter-more-v1238>summary{font-size:13px;color:#4b5d4b;padding:10px 6px;min-height:44px;cursor:pointer}
.room-filter-more-v1238[open]{flex:1 0 100%;margin:0;border-top:1px solid #b5a17c;padding-top:4px}
.room-filter-more-v1238 .room-filter-fields{display:flex;gap:20px;flex-wrap:wrap;padding:8px 0}
.room-filter-more-v1238 label{display:grid;gap:5px;font-size:13px;flex:1;min-width:170px}
#catalogue-view .catalogue-collections{margin:8px 0;gap:8px}
#catalogue-view .catalogue-collections button{padding:8px 12px;min-height:44px;font-size:13px;border-radius:5px;border:1px solid #9f886e;background:#fff8e8;color:#4c483b;box-shadow:none;transform:none}
#catalogue-view .catalogue-collections button[aria-pressed="true"]{background:#e5eacb;border-color:#5b7058}
#catalogue-view #range-filter-note{font-size:12px;line-height:1.5;margin:8px 0}
#catalogue-view #clear-catalogue-filters{min-height:44px;padding:8px 5px;border:0;background:none;text-decoration:underline;font-size:13px;white-space:nowrap;color:#66513f}
#catalogue-view .catalogue-result-count{font-size:12px;margin:12px 3px 0;padding:0;border:0;color:#645348}
#catalogue-view .catalogue-choice-hint-v1233{margin:10px 0 0;font-size:13px;color:#665347}
#catalogue-view .catalogue-shelf{gap:26px 24px;margin:0 0 28px;padding:15px 14px 8px;border-left:10px solid #9a693e;border-right:10px solid #9a693e;background:linear-gradient(90deg,#563b2d1a,transparent 3% 97%,#563b2d1a);box-shadow:inset 2px 0 #c8a574,inset -2px 0 #c8a574}
#catalogue-view .catalogue-shelf:after{display:none}
#catalogue-view .catalogue-book-tab,#catalogue-view .catalogue-book-tab[aria-selected="true"]{border:2px solid transparent;border-radius:5px;padding:6px 6px 8px;background:none;box-shadow:none;transition:none}
#catalogue-view .catalogue-art{height:215px;margin:0 0 17px;padding:0 2px 12px;isolation:isolate}
#catalogue-view .catalogue-art:after{content:"";position:absolute;left:-21px;right:-21px;bottom:0;height:16px;border:1px solid #80512c;border-bottom:5px solid #72492f;border-radius:3px;background:repeating-linear-gradient(2deg,#b8854b 0 3px,#b17d47 3px 5px,#c69b62 5px 7px);box-shadow:0 8px 10px #65402a35;z-index:-1;pointer-events:none}
#catalogue-view .catalogue-art img{max-height:198px;max-width:100%;height:auto;width:auto;border:1px solid #fff5d2;border-radius:1px;transform:rotate(var(--book-angle));box-shadow:4px 4px 0 #5b3b2c44,0 8px 10px #6143292e;transition:transform .18s}
#catalogue-view .catalogue-book-tab:hover img{transform:rotate(0) translateY(-4px)}
#catalogue-view .catalogue-book-tab[aria-selected="true"] .catalogue-art img{outline:3px solid #b57737;outline-offset:3px}
#catalogue-view .catalogue-book-tab:focus-visible{outline:3px solid #783d70;outline-offset:2px;background:#fff9e5aa}
#catalogue-view .catalogue-book-name{color:#44382f;font-size:21px;margin:0 0 5px}
#catalogue-view .book-level-v1233{font-size:12px;color:#665343;margin:0;line-height:1.4}
#catalogue-view .catalogue-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#catalogue-view .catalogue-dossier{border:9px solid #b88c58;border-bottom-width:15px;border-radius:10px 15px 8px 12px;padding:28px 30px;background:linear-gradient(90deg,#fff9e9 0 53%,#e9dcc4 53.1%,#fffaf0 54%);box-shadow:0 3px 0 #765438,0 10px 22px #65503b20;gap:32px;scroll-margin-top:104px}
#catalogue-view .catalogue-dossier:before{content:"ON THE READING TABLE";background:#e4eddb;color:#36594c;border:1px solid #688276;border-radius:3px;font-size:10px;top:-15px;right:24px;box-shadow:none;transform:rotate(1deg)}
.reading-cover-v1238{float:right;width:86px;height:auto;margin:0 0 16px 16px;box-shadow:3px 4px 7px #54412d33;transform:rotate(2deg)}
#catalogue-view .book-detail-copy h3{font-size:30px;color:#4b3932}
#catalogue-view .book-detail-description{font-size:14px;line-height:1.7;color:#605044}
#catalogue-view .book-detail-range{color:#51705d;font-size:11px;letter-spacing:.03em}
#catalogue-view .book-detail-facts{clear:both;border-style:solid;border-color:#c7b491}
.book-ten-hunts-v1238{font-size:13px;color:#685847;margin:-6px 0 14px}
#catalogue-view .book-sample{border:0;border-radius:4px;background:#ece2ca;padding:12px;box-shadow:0 3px 0 #c0ac87;color:#3e483b}
#catalogue-view .book-sample span{font-size:13px;color:#3c5b4e}
#catalogue-view .book-sample small{font-size:11px;color:#675643}
#catalogue-view .book-detail-status{color:#665345;font-size:13px}
.workbook-how-v1238{margin:28px 0;padding:18px 22px;background:#f7f1de;border:1px solid #c6b28b;border-radius:7px}
.workbook-how-v1238>summary{font:400 23px/1.35 "Quest Display",var(--round);color:#4f5945;cursor:pointer;min-height:44px}
.workbook-how-v1238 ol{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding-left:22px;margin:12px 0 16px}
.workbook-how-v1238 li{font-size:14px;line-height:1.65;color:#5f5141;padding-right:8px}
.workbook-how-v1238 strong{display:block;color:#3f594d}
.workbook-how-v1238 p{font-size:13px;margin:0;color:#695843}
#catalogue-view .planned-series{border:0;border-top:1px solid #bda27c;padding:24px 0 0;margin:30px 0 0;background:none;box-shadow:none}
#catalogue-view .planned-series h3{font-size:24px}
#catalogue-view .planned-series .planned-card{background:#f7f0dc;border:1px solid #bba783;box-shadow:none}
#hall-view .hall-home-v128{max-width:none;width:min(1100px,calc(100% - 64px));padding-bottom:24px}
#hall-view .room-heading-v1238{width:100%;margin:24px 0 24px}
.hall-reading-table-v1238{position:relative;display:grid;grid-template-columns:1.15fr 1fr;gap:42px;padding:32px;background:linear-gradient(90deg,#fffbec 0 53%,#e9dcc0 53.1%,#fffaf0 54%);border:10px solid #ac8150;border-bottom-width:17px;border-radius:10px 17px 8px 13px;box-shadow:0 3px 0 #725136,0 10px 20px #604d3520}
.hall-reading-table-v1238 h2{font:400 30px/1.17 "Quest Display",var(--round);color:#4d5745;letter-spacing:0;margin:0 0 16px}
.hall-reading-table-v1238 p{font-size:15px;line-height:1.7;color:#5e5142}
.hall-reading-table-v1238 .table-kicker{font-size:11px;font-weight:750;letter-spacing:.1em;color:#906039;margin:0 0 8px}
.room-action-v1238{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #496858;border-bottom:4px solid #355548;border-radius:6px;background:#4e7864;color:#fffaf0;text-decoration:none;padding:10px 17px;font:700 14px/1.5 var(--body);cursor:pointer;gap:10px}
.room-action-v1238:hover{background:#3b6553}
.room-action-v1238.secondary{background:#fff5d8;color:#4d624d;border-color:#a9976e}
.room-actions-v1238{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 0}
.hall-sample-v1238{display:grid;grid-template-columns:100px 1fr;gap:18px;align-items:start}
.hall-sample-v1238>img{width:100px;box-shadow:3px 5px 8px #584c3430;transform:rotate(2deg)}
.hall-sample-v1238 h2{font-size:24px}
.hall-sample-v1238 p{font-size:14px;margin-bottom:14px}
.hall-sample-v1238 .room-action-v1238{margin-bottom:10px;justify-content:flex-start;width:100%;font-size:13px;padding:9px 10px}
.hall-about-v1238{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;margin:34px 0 28px}
.hall-about-v1238 h2{font:400 25px/1.25 "Quest Display",var(--round);color:#4f5a44;letter-spacing:0;margin-bottom:12px}
.hall-about-v1238 p,.hall-about-v1238 li{font-size:14px;line-height:1.7;color:#62533f}
.hall-about-v1238 details>summary{min-height:44px;padding:7px 0;font-weight:700;cursor:pointer;color:#4b6654}
#hall-view .world-roles-v1228{display:block;border:0;margin:12px 0;padding:0}
#hall-view .world-roles-v1228>div{margin:0 0 13px}
#hall-view .world-roles-v1228 dt{font-size:14px;color:#4b5d49}
#hall-view .world-roles-v1228 dd{font-size:13px;margin:4px 0 0}
.hall-small-print-v1238{border-top:1px solid #b49c75;padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:30px}
#hall-view .hall-news-v128{margin:0;padding:0;border:0;scroll-margin-top:110px}
#hall-view .hall-contact-v128{margin:0}
#hall-view .hall-news-v128 h2{font-size:22px;color:#62503c}
#hall-view .hall-news-v128 p,#hall-view .hall-contact-v128 p{font-size:13px;color:#665640}
#hall-view .hall-links-v128{gap:2px 14px}
#hall-view .hall-links-v128>button{font-size:13px;color:#4d6551}
#hall-view #scanlife-entry-v125{margin:0;padding:0;border:0}
#hall-view #scanlife-open-v125{font-size:14px;box-shadow:0 3px 0 #84684a;max-width:100%}
#parents-view>.wrap{max-width:1060px}
#parents-view .parent-guide-answers{background:#fffae9;border:8px solid #b8905c;border-radius:10px;padding:12px 30px;box-shadow:0 5px 0 #72553a}
#parents-view .parent-answer{background:transparent;border-radius:0;border-color:#c6b795;box-shadow:none}
#parents-view .parent-answer-number{background:#e4ebd7;color:#496048;box-shadow:none;border-color:#93a284}
#parents-view .parent-guide-action{min-height:44px}
#community-hall-shell button:focus-visible,#community-hall-shell a:focus-visible,#community-hall-shell summary:focus-visible,#community-hall-shell select:focus-visible{outline:3px solid #77376d;outline-offset:4px}
#journey-app[data-motion="still"] #catalogue-view .catalogue-art img{transition:none;transform:rotate(var(--book-angle))!important}
@media(min-width:1450px){#community-hall-shell{background-size:1700px 1000px}.community-hall-nav-v128,.room-heading-v1238,#catalogue-view .quest-catalogue,#hall-view .hall-home-v128{width:min(1240px,calc(100% - 96px))}#catalogue-view .catalogue-art{height:238px}#catalogue-view .catalogue-art img{max-height:220px}}
@media(max-width:900px){.community-hall-nav-v128,.room-heading-v1238,#catalogue-view .quest-catalogue,#hall-view .hall-home-v128{width:calc(100% - 42px)}#catalogue-view .catalogue-shelf{column-gap:14px;padding-left:6px;padding-right:6px;border-width:7px}#catalogue-view .catalogue-art:after{left:-14px;right:-14px}#catalogue-view .catalogue-art{height:174px}#catalogue-view .catalogue-art img{max-height:156px}#catalogue-view .catalogue-book-name{font-size:20px}#catalogue-view .catalogue-dossier{padding:24px;gap:24px}.hall-reading-table-v1238{padding:24px;gap:28px}.hall-sample-v1238{grid-template-columns:72px 1fr;gap:12px}.hall-sample-v1238>img{width:72px}}
@media(max-width:650px){#community-hall-shell{padding-top:108px;background-size:1000px 650px}.community-hall-nav-v128{width:calc(100% - 32px);gap:0 16px;padding-bottom:7px}.community-hall-nav-v128>button{font-size:12px;min-height:44px}.community-hall-nav-v128>button:last-child{margin-left:0}.room-heading-v1238{width:calc(100% - 32px);padding-right:0;min-height:0;margin-top:20px}.room-heading-v1238 .room-kicker{font-size:10px}.room-heading-v1238>p:last-of-type{font-size:14px;line-height:1.6}#catalogue-view .view-title,#hall-view .view-title{font-size:32px}.room-window-v1238{display:none}#catalogue-view .quest-catalogue,#hall-view .hall-home-v128{width:calc(100% - 32px)}#catalogue-view .catalogue-intro #catalogue-note{font-size:12px;margin-bottom:12px}#catalogue-view .catalogue-finder{padding:10px 12px;gap:3px 12px}.level-choice-v1238{font-size:13px;justify-content:space-between;width:100%;gap:10px}#catalogue-view .catalogue-finder select{font-size:13px;max-width:185px}.room-filter-more-v1238{margin-left:0}.room-filter-more-v1238>summary{font-size:12px}#catalogue-view #clear-catalogue-filters{margin-left:auto;font-size:12px}.room-filter-more-v1238[open]{order:4}#catalogue-view .catalogue-result-count{font-size:11px;margin-top:4px}#catalogue-view .catalogue-choice-hint-v1233{font-size:12px}#catalogue-view .catalogue-shelf{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:25px;padding:14px 3px 4px;border-left-width:6px;border-right-width:6px}#catalogue-view .catalogue-art{height:188px;margin-bottom:15px}#catalogue-view .catalogue-art img{max-height:170px}#catalogue-view .catalogue-art:after{left:-17px;right:-17px}#catalogue-view .catalogue-book-name{font-size:20px}#catalogue-view .book-level-v1233{font-size:11px}#catalogue-view .catalogue-dossier{grid-template-columns:1fr;background:#fff9e9;border-width:7px;border-bottom-width:12px;padding:24px 18px;gap:25px;scroll-margin-top:116px}#catalogue-view .catalogue-dossier:before{right:14px;font-size:9px;padding:3px 9px}.reading-cover-v1238{width:76px;margin-left:12px}#catalogue-view .book-detail-copy h3{font-size:29px}#catalogue-view .book-detail-description{font-size:14px}#catalogue-view .book-sample span{font-size:12px}#catalogue-view .book-sample{padding:9px}.workbook-how-v1238{padding:14px 16px}.workbook-how-v1238>summary{font-size:21px}.workbook-how-v1238 ol{grid-template-columns:1fr;gap:16px}.workbook-how-v1238 li{padding:0}#hall-view .room-heading-v1238{margin-top:20px}.hall-reading-table-v1238{grid-template-columns:1fr;background:#fff9e9;border-width:7px;border-bottom-width:12px;padding:23px 19px;gap:26px}.hall-reading-table-v1238 h2{font-size:28px}.hall-reading-table-v1238 p{font-size:14px}.hall-sample-v1238{grid-template-columns:82px 1fr;gap:15px;border-top:1px solid #cdbb96;padding-top:24px}.hall-sample-v1238>img{width:82px}.hall-sample-v1238 h2{font-size:23px}.hall-about-v1238,.hall-small-print-v1238{grid-template-columns:1fr;gap:24px}.hall-about-v1238{margin:28px 0}#parents-view .parent-brief{padding:20px 18px;border-width:6px}#parents-view .parent-answer{padding:22px 0}.room-action-v1238{font-size:13px;padding:10px 12px}#journey-app:is([data-view="hall"],[data-view="catalogue"],[data-view="parents"],[data-view="notes"])>.journey-header{border-bottom-width:5px}}
@media(max-width:380px){#catalogue-view .catalogue-art{height:164px}#catalogue-view .catalogue-art img{max-height:148px}#catalogue-view .catalogue-book-name{font-size:18px}.book-level-v1233{font-size:10px!important}.hall-sample-v1238{grid-template-columns:65px 1fr}.hall-sample-v1238>img{width:65px}}
@media(prefers-reduced-motion:reduce){#catalogue-view .catalogue-art img{transition:none}#catalogue-view .catalogue-book-tab:hover img{transform:rotate(var(--book-angle))}}

/* character-entry-v12.39.css */
/* Character artwork stays fixed; only its own body receives pointer input. */
#journey-viewport .village-friends>.world-friend{pointer-events:none}
#journey-viewport .village-friends>.world-friend>.actor-body[data-ask-help]{pointer-events:auto;padding:0;border:0;background:transparent;overflow:visible;cursor:pointer}
#journey-viewport .village-friends>.world-friend>.actor-body[data-ask-help]:before,#journey-viewport .village-friends>.world-friend>.actor-body[data-ask-help]:after{display:none!important}
#journey-viewport .village-friends>.world-friend>.actor-body[data-ask-help]:focus-visible{outline:3px solid #fff0a9;outline-offset:5px;border-radius:16px;box-shadow:0 0 0 7px #4e3c4870}
/* Keep the Village heading and live region for assistive technology, without
   the combined Help/Info dock or an invisible interactive area. */
#journey-viewport[data-stop="glade"] .journey-story.compact-caption-v126{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;max-height:1px!important;left:0!important;right:auto!important;bottom:0!important;padding:0!important;border:0!important;margin:0!important;overflow:hidden!important;clip-path:inset(50%);background:none!important;box-shadow:none!important;transform:none!important;pointer-events:none!important}
#journey-viewport[data-stop="glade"] .compact-caption-v126 #scene-details-toggle,#journey-viewport[data-stop="glade"] .compact-caption-v126 #scene-details{display:none!important}
.starter-character-progress-v1239{margin:18px 0;padding:15px 18px;border:1px solid #b69c6c;border-radius:8px;background:#f8efd7;color:#514535;font-size:15px;line-height:1.65}
.starter-character-progress-v1239 strong{display:block;color:#58385b}

/* stability-v12.40.css */
/* Stable HTML scene paint; source coordinates and clickable plane stay shared. */
#lane-plate-v1210.market-paint-v1240{position:absolute;inset:0 auto auto 0;display:block;width:2172px!important;height:724px!important;max-width:none!important;max-height:none!important;transform-origin:0 0;pointer-events:none;overflow:visible;contain:layout style}
#lane-plate-v1210.market-paint-v1240>.market-base-v1240{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:fill;pointer-events:none}
#lane-plate-v1210.market-paint-v1240>.market-sign-layer-v1240{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;overflow:visible;pointer-events:none}
.scene-assets-notice-v1240{position:absolute;z-index:25;top:112px;left:50%;transform:translateX(-50%);width:min(430px,calc(100% - 32px));padding:15px 18px;background:#fff5dc;color:#4b3b35;border:2px solid #947249;border-radius:12px;box-shadow:0 4px 0 #6e513b55;font:400 15px/1.55 "Segoe UI",sans-serif}
.scene-assets-notice-v1240[hidden]{display:none!important}
.scene-assets-notice-v1240 p{margin:0 0 8px}.scene-assets-actions-v1240{display:flex;flex-wrap:wrap;gap:9px}
.scene-assets-actions-v1240 button{min-height:44px;min-width:44px;padding:8px 14px;background:#45695a;color:#fff9e8;border:1px solid #304d41;border-radius:6px;font:700 14px/1.5 "Segoe UI",sans-serif}
.scene-assets-actions-v1240 button:last-child{background:#fff9e8;color:#4b5241;border-color:#a48b61}
.scene-assets-actions-v1240 button:focus-visible{outline:3px solid #783e73;outline-offset:3px}
@media(max-width:650px){.scene-assets-notice-v1240{top:118px;font-size:14px;padding:12px 14px}}

/* grove-safety-v12.40.css */
/* Keep the Grove's existing illustration and native resident positions.
   The wide frame breathes into a quiet same-scene ambient backdrop. */
#journey-viewport[data-stop=trail][data-resident-frame-v1231=short-wide]::before{
 content:"";position:absolute;inset:-24px;z-index:-1;pointer-events:none;
 background:#183528 url("assets/grove-v12.8/grove-fork-v12.8.webp") center/cover no-repeat;
 filter:blur(22px) brightness(.48) saturate(.72);opacity:.72;
}
#journey-viewport[data-stop=trail][data-resident-frame-v1231=short-wide] .trail-plate{
 border-radius:5px;box-shadow:0 0 22px 10px #10271e88;
}
/* Captions grow with text without falling below the window or into the HUD.
   Their details scroll internally in short windows and larger text settings. */
#journey-viewport[data-stop=trail] .journey-reading-dock{
 --grove-caption-floor:24px;bottom:var(--grove-caption-floor);top:auto;
 max-height:max(58px,calc(100dvh - var(--grove-caption-floor) - 124px));
}
#journey-viewport[data-stop=trail] .journey-reading-dock>.journey-story{
 box-sizing:border-box;min-height:0;
 max-height:max(58px,calc(100dvh - var(--grove-caption-floor) - 124px));
 overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;
}
@media(max-width:1050px){
 #journey-viewport[data-stop=trail] .journey-reading-dock{--grove-caption-floor:70px}
}
@media(max-width:600px){
 #journey-viewport[data-stop=trail] .journey-reading-dock{--grove-caption-floor:66px}
}
@media(max-height:540px) and (min-width:601px){
 #journey-viewport[data-stop=trail] .journey-reading-dock{--grove-caption-floor:62px}
}
/* No controls sit below the short-wide rail, so it may use the viewport floor. */
#journey-viewport[data-stop=trail][data-resident-frame-v1231=short-wide] .journey-reading-dock{
 --grove-caption-floor:24px;left:auto;right:24px;translate:0 0;width:240px;
 max-width:calc(100% - 48px);
}

/* reward-access-v12.41.css */
/* Load after starter-adventure-v12.28.css and starter-rewards-v12.29.css.
   The global dialog rule uses overflow:hidden. This native modal is the one
   bounded scroll container; reward descendants must never create a second. */
@media screen {
  #starter-adventure-v1228 {
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scroll-padding-block: 68px 16px;
    touch-action: pan-y pinch-zoom;
  }
  #starter-adventure-v1228 .starter-paper-v1228,
  #starter-content-v1228,
  #starter-adventure-v1228 .cq-reward-screen {
    min-width: 0;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
  #starter-adventure-v1228 .cq-reward-close-toolbar {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    justify-content: flex-end;
    padding: 6px 0;
    margin-bottom: 6px;
    background: #fff9e9;
  }
  #starter-adventure-v1228[data-screen="reward"] .starter-heading-v1228 {
    position: static;
    min-width: 0;
  }
  #starter-adventure-v1228[data-screen="reward"] .starter-kicker-v1228 { display: none; }
  #starter-adventure-v1228[data-screen="reward"] .starter-heading-v1228 h2 {
    font-size: clamp(1.25rem, 3vw, 1.6rem);
    overflow-wrap: anywhere;
  }
  #starter-adventure-v1228 .cq-reward-controls {
    position: static;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 14px 0 4px;
    margin: 8px 0;
    border-top: 1px solid #c5cfad;
    scroll-margin-block: 70px 16px;
  }
  #starter-adventure-v1228 .cq-reward-controls > * {
    flex: 1 1 180px;
    max-width: 100%;
    min-height: 46px;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  #starter-adventure-v1228 .cq-reward-download { background: #e9f0d7; color: #2d4f35; }
  #starter-adventure-v1228 .cq-reward-picture { flex: none; scroll-margin-top: 68px; }
  #starter-adventure-v1228 .cq-reward-status { overflow-wrap: anywhere; }
  @media (max-width: 420px) {
    #starter-adventure-v1228 .cq-reward-controls { flex-direction: column; }
    #starter-adventure-v1228 .cq-reward-controls > * { flex-basis: auto; width: 100%; }
  }
}

/* room-readability-v12.42.css */
/* Keep the original room illustration once around the reading areas. Its top
   timber must not repeat through paragraphs farther down the page. */
#community-hall-shell { background-repeat: no-repeat; padding-top: 0; }
/* In rooms the header takes its real height in the document. Enlarged text
   cannot outgrow a guessed fixed spacer and cover the room navigation. */
#journey-app:is([data-view="hall"],[data-view="catalogue"],[data-view="parents"],[data-view="notes"])>.journey-header {
  position: sticky;
  inset: auto;
  top: 0;
}

#hall-view :is(.hall-about-v1238,.hall-small-print-v1238) {
  box-sizing: border-box;
  min-width: 0;
  height: auto;
  padding: clamp(20px,2.5vw,32px);
  background: #fff8e7;
  border: 1px solid #ccb58e;
  border-radius: 8px 13px 9px 11px;
  box-shadow: 0 3px 0 #97794a18;
}
#hall-view .hall-about-v1238 { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); }
#hall-view .hall-small-print-v1238 { grid-template-columns: repeat(2,minmax(0,1fr)); }
#hall-view .hall-reading-table-v1238 { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); }
#hall-view .hall-sample-v1238 { grid-template-columns: minmax(0,100px) minmax(0,1fr); }
#hall-view :is(.hall-about-v1238,.hall-small-print-v1238,.hall-reading-table-v1238,.hall-sample-v1238)>* {
  min-width: 0;
  max-width: 100%;
}
#hall-view :is(.hall-about-v1238,.hall-small-print-v1238) :is(p,li,dd) {
  line-height: 1.75;
  overflow-wrap: break-word;
}
#hall-view .hall-sample-v1238>img { width: 100%; max-width: 100px; }
#hall-view :is(.room-action-v1238,.hall-links-v128>button,#scanlife-open-v125) {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: break-word;
}

/* The shelves and wood edges stay in place. Reading copy has paper beneath it,
   with flexible tracks and no fixed text heights as lines wrap. */
#catalogue-view .catalogue-intro {
  padding: 14px 18px;
  margin-bottom: 12px;
  background: #fff8e7;
  border: 1px solid #ccb58e;
  border-radius: 8px 11px 7px 10px;
}
#catalogue-view .catalogue-choice-hint-v1233 {
  padding: 8px 12px;
  background: #fff8e7;
  border-radius: 5px;
}
#catalogue-view .catalogue-dossier { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); }
#catalogue-view .catalogue-dossier>*,#catalogue-view .book-detail-facts>* { min-width: 0; }
#catalogue-view .book-detail-facts dd { white-space: normal; }
#catalogue-view .book-detail-facts>div { flex-wrap: wrap; }
#catalogue-view .workbook-how-v1238 ol { grid-template-columns: repeat(3,minmax(0,1fr)); }
#catalogue-view :is(.book-detail-description,.book-detail-status,.workbook-how-v1238 p,.workbook-how-v1238 li) {
  line-height: 1.75;
  overflow-wrap: break-word;
}
#catalogue-view .planned-series {
  padding: 24px 20px;
  background: #fff8e7;
  border: 1px solid #ccb58e;
  border-radius: 8px 13px 9px 11px;
}
#community-hall-shell :is(.room-actions-v1238,.book-sample) { min-width: 0; }
#community-hall-shell :is(.view-title,.book-detail-copy h3,.catalogue-book-name) {
  max-width: 100%;
  overflow-wrap: anywhere;
  hyphens: auto;
}

@media(max-width:900px) {
  #hall-view .hall-reading-table-v1238,
  #hall-view .hall-about-v1238,
  #hall-view .hall-small-print-v1238 { grid-template-columns: minmax(0,1fr); }
  #hall-view .hall-sample-v1238 { grid-template-columns: minmax(0,82px) minmax(0,1fr); }
  #catalogue-view .catalogue-dossier { grid-template-columns: minmax(0,1fr); }
  #catalogue-view .workbook-how-v1238 ol { grid-template-columns: minmax(0,1fr); }
}
@media(max-width:460px) {
  #hall-view .hall-sample-v1238 { grid-template-columns: minmax(0,1fr); }
  #hall-view .hall-sample-v1238>img { max-width: 100px; }
  #hall-view .room-actions-v1238 { align-items: stretch; }
  #hall-view .room-actions-v1238>* { flex: 1 1 100%; }
}

/* market-status-v12.43.css */
/* Door notices live on the painted counter fronts, not in a screen overlay. */
.market-closed-plaque-v1243{
 position:absolute;display:grid;place-items:center;box-sizing:border-box;
 width:92px;min-height:27px;padding:3px 5px;translate:-50% -50%;
 border:1.4px solid #795537;border-radius:3px 4px 3px 3px;
 background:linear-gradient(9deg,#c39a64,#f1d7a5 47%,#d7b27d);
 color:#4c3427;font:400 max(14px,calc(var(--lane-control-size,56px)*.18))/1.15 'Quest Display',Georgia,serif;
 text-align:center;box-shadow:0 2px 2px #3c2c2355;pointer-events:none;
}
.market-closed-plaque-v1243::before{
 content:'';position:absolute;left:12%;right:12%;top:-6px;height:6px;
 border-left:1px solid #775737;border-right:1px solid #775737;pointer-events:none;
}
.market-portal-v1225[data-shop-status=closed]{cursor:help}
.market-portal-v1225[data-shop-status=closed]:hover{background:#fff0bd0b;box-shadow:none}
#journey-viewport[data-navigation-mode-v1227=desktop][data-stop=lane] #lane-world-v1210{
 inset:0!important;
 background:linear-gradient(180deg,var(--market-sky-v1243,#8ca9ad) 0%,var(--market-haze-v1243,#dde7cf) 23%,var(--market-grass-v1243,#87a475) 69%,var(--market-earth-v1243,#345a39) 100%);
}
#journey-viewport[data-navigation-mode-v1227=desktop][data-stop=lane] #lane-plate-v1210{
 box-shadow:0 12px 30px #2946313b;
}
/* A closed workshop offers only a concise status notice; no fake interior. */
#market-shop-dialog-v1225[data-shop-status=closed]{width:min(500px,calc(100% - 28px))}
#market-shop-dialog-v1225[data-shop-status=closed] .market-shop-body-v1225{display:block;padding:20px 24px 25px}
#market-shop-dialog-v1225[data-shop-status=closed] :is(.market-shop-art-v1225,.market-shop-level-v1225){display:none}
#market-shop-dialog-v1225[data-shop-status=closed] .market-shop-copy-v1225{padding-top:0}
#market-shop-dialog-v1225[data-shop-status=closed] #market-shop-title-v1225{font-size:clamp(25px,3vw,32px);margin-bottom:13px}
#market-shop-dialog-v1225[data-shop-status=closed] .market-shop-coming-v1225{border-style:solid}
@media(max-width:600px){#market-shop-dialog-v1225[data-shop-status=closed]{width:calc(100% - 20px)}#market-shop-dialog-v1225[data-shop-status=closed] .market-shop-body-v1225{padding:17px 19px 22px}}

/* village-friends-v12.43.css */
/* Both residents use the same Village source-plane units. Species size is
   independent of the viewport: Puppy is modestly larger at the same depth.
   Their complete 875x800 artwork is never stretched to the touch target. */
#journey-viewport[data-stop="glade"] #hub-source-plane-v127>.village-friends>.world-friend {
  --pet-world-unit: 88px;
  --pet-species-ratio: 1;
  --pet-depth-ratio: 1.04;
  --pet-art-height: calc(var(--pet-world-unit) * var(--pet-species-ratio) * var(--pet-depth-ratio));
  --pet-art-width: calc(var(--pet-art-height) * 875 / 800);
  --pet-hit-width: max(var(--pet-art-width),var(--pet-control-size,var(--hub-control-size,56px)));
  --pet-hit-height: max(var(--pet-art-height),var(--pet-control-size,var(--hub-control-size,56px)));
  position: absolute;
  top: 760px!important;
  bottom: auto!important;
  right: auto!important;
  width: var(--pet-art-width)!important;
  height: var(--pet-art-height)!important;
  min-width: 0!important;
  min-height: 0!important;
  translate: -50% -100%!important;
  transform: none!important;
  rotate: 0deg!important;
  scale: 1!important;
  filter: none!important;
  isolation: isolate;
  pointer-events: none!important;
}
#journey-viewport[data-stop="glade"] #hub-source-plane-v127>.village-friends>.friend-kitten {
  left: 655px!important;
}
#journey-viewport[data-stop="glade"] #hub-source-plane-v127>.village-friends>.friend-puppy {
  --pet-species-ratio: 1.15;
  --pet-depth-ratio: 1.02;
  left: 860px!important;
  top: 752px!important;
}
/* A small opaque ground shadow anchors paws to the paving. No glow or
   bouncing cutout is used, and movement of the shared scene stays intact. */
#journey-viewport[data-stop="glade"] #hub-source-plane-v127>.village-friends>.world-friend::before {
  content: "";
  display: block!important;
  position: absolute;
  left: 20%;
  right: 20%;
  bottom: -1px;
  height: 4px;
  border-radius: 50%;
  background: radial-gradient(ellipse,#44502d52,transparent 73%);
  filter: blur(1px);
  z-index: 0;
  pointer-events: none;
}
#journey-viewport[data-stop="glade"] #hub-source-plane-v127>.village-friends>.world-friend>.actor-body[data-ask-help] {
  position: absolute;
  left: calc((100% - var(--pet-hit-width)) / 2)!important;
  top: auto!important;
  right: auto!important;
  bottom: 0!important;
  width: var(--pet-hit-width)!important;
  height: var(--pet-hit-height)!important;
  min-width: 0!important;
  min-height: 0!important;
  max-width: none!important;
  max-height: none!important;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 12px;
  transform: none!important;
  overflow: visible;
  z-index: 1;
  pointer-events: auto!important;
  touch-action: manipulation;
}
#journey-viewport[data-stop="glade"] #hub-source-plane-v127>.village-friends>.world-friend>.actor-body[data-ask-help]>img {
  position: absolute;
  display: block;
  left: calc((100% - var(--pet-art-width)) / 2)!important;
  top: auto!important;
  right: auto!important;
  bottom: 0!important;
  width: var(--pet-art-width)!important;
  height: var(--pet-art-height)!important;
  max-width: none!important;
  max-height: none!important;
  object-fit: contain!important;
  object-position: center bottom;
  transform: none!important;
  translate: none!important;
  pointer-events: none!important;
}


/* quest-placement-v12.43.css */
/* The same five buttons travel with the scenery plane belonging to their
   saved placement. Timber, roots and flowers are copied from that exact spot. */
#journey-viewport .quest-placement-plane-v1243{position:absolute;inset:0;pointer-events:none!important}
#journey-viewport .quest-placement-plane-v1243>.habitat-find-v128{z-index:7;left:var(--find-left)!important;top:var(--find-top)!important;width:var(--find-hit-size,56px)!important;height:var(--find-hit-size,56px)!important}
#journey-viewport .quest-placement-plane-v1243>.habitat-find-v128[hidden]{display:none!important;pointer-events:none!important}

/* collection-data-v12.44.css */
#workbook-pouch .help-quest-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#workbook-pouch .help-quest-choices>button{min-width:0;min-height:44px;white-space:normal;overflow-wrap:break-word;padding:8px}
#workbook-pouch .help-quest-choices>button.is-collection-complete-v1244{border-color:#6a8054;background:#e6efd4}
.collection-overall-v1244{padding:10px 12px;margin:12px 0;background:#fff8e7;border:1px solid #c9b186;border-radius:9px;color:#4c4439;line-height:1.5}
.collection-overall-v1244>strong,.collection-overall-v1244>span{display:block}
.collection-route-note-v1244{font-size:13px;line-height:1.55}
.collection-reset-v1244{box-sizing:border-box;width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px;background:#fff4dc;border:2px solid #81623a;border-radius:14px;color:#493e32}
.collection-reset-v1244::backdrop{background:#17251ec2}
.collection-reset-v1244 h2{font:400 27px/1.15 'Quest Display',Georgia,serif;margin:0 0 14px}
.collection-reset-v1244 p{font:400 15px/1.6 'Segoe UI',sans-serif}
.collection-reset-actions-v1244{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.collection-reset-actions-v1244>button{min-height:44px;flex:1 1 150px;padding:10px 12px;border:1px solid #8a7049;border-radius:7px;background:#f7e9c4;color:#493e32;white-space:normal}
.collection-reset-actions-v1244>button[data-confirm-collection-reset]{background:#52765f;color:#fff}
.collection-reset-v1244 button:focus-visible{outline:3px solid #87653b;outline-offset:3px}
@media(max-width:360px){#workbook-pouch .help-quest-choices{grid-template-columns:minmax(0,1fr)}}

/* group-reward-v12.44.css */
/* The reward is its own scrollable paper, with its actions after the picture. */
.cq-group-entry-v1244{display:block;width:100%;margin:14px 0 5px;min-height:46px;padding:10px 12px;border:1px solid #79583b;border-radius:8px;background:#f2dfad;color:#3f4e35;font:inherit;line-height:1.3;text-align:left}
.cq-group-entry-v1244:disabled{opacity:.75;cursor:default}
.cq-group-entry-v1244:not(:disabled){background:#315f49;color:#fff9e9;cursor:pointer}
.cq-group-entry-status-v1244{margin:5px 0 0;font-size:.85rem;line-height:1.45}
.cq-group-dialog-v1244{box-sizing:border-box;width:min(690px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);padding:0 22px 22px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:2px solid #7b6143;border-radius:14px;background:#fff7e3;color:#304535;box-shadow:0 15px 60px #172e2460}
.cq-group-dialog-v1244::backdrop{background:#182d248c}
.cq-group-toolbar-v1244{position:sticky;top:0;z-index:5;display:flex;justify-content:flex-end;align-items:center;min-height:54px;padding:6px 0;background:#fff7e3;border-bottom:1px solid #d9caa7}
.cq-group-toolbar-v1244 button,.cq-group-actions-v1244 button{box-sizing:border-box;min-height:46px;border:1px solid #79583b;border-radius:8px;padding:10px 15px;font:inherit;line-height:1.25;cursor:pointer}
.cq-group-close-v1244{background:#f7e9c6;color:#374b35}
.cq-group-title-v1244{font:400 clamp(1.5rem,4vw,2rem)/1.15 'Quest Display',Georgia,serif;margin:18px 0 10px;overflow-wrap:break-word}
.cq-group-copy-v1244,.cq-group-status-v1244{font:400 1rem/1.55 'Segoe UI',Arial,sans-serif;margin:10px 0 14px;max-width:58ch}
.cq-group-status-v1244{font-size:.9rem;min-height:1.55em}
.cq-group-actions-v1244{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 12px}
.cq-group-print-v1244{background:#315f49;color:#fffdf5}
.cq-group-download-v1244{background:#f0dfb5;color:#304535}
.cq-group-actions-v1244 button:disabled{opacity:.65;cursor:wait}
.cq-group-dialog-v1244 button:focus-visible,.cq-group-entry-v1244:focus-visible{outline:3px solid #2c6685;outline-offset:3px}
.cq-group-picture-v1244{position:relative;box-sizing:border-box;aspect-ratio:178/243;width:100%;max-width:590px;margin:16px auto;background:#fffef9;border:1px solid #82947b;border-radius:3px;overflow:hidden;color:#2e513b;font-family:Georgia,'Times New Roman',serif;box-shadow:0 6px 20px #223d231a;isolation:isolate}
.cq-group-picture-v1244::before{content:'';position:absolute;inset:7px;border:1px solid #d0d8c5;border-radius:3px;pointer-events:none}
.cq-group-picture-v1244::after{content:'';position:absolute;left:6%;right:6%;top:69.5%;height:3.5%;background:radial-gradient(ellipse,#edf1e5 0 62%,transparent 65%);z-index:-1;pointer-events:none}
.cq-group-picture-v1244 :is(p,h3){position:absolute;left:4%;width:92%;margin:0;text-align:center;line-height:1.15}
.cq-group-brand-v1244{top:6.3%;font-size:clamp(1.3rem,4.2vw,2rem);font-weight:700}
.cq-group-subtitle-v1244{top:11%;font-size:clamp(1rem,3.1vw,1.5rem)}
.cq-group-edition-v1244{top:14.5%;font:400 clamp(.5rem,1.6vw,.75rem)/1.2 Arial,sans-serif!important;letter-spacing:.12em;text-transform:uppercase}
.cq-group-picture-v1244>.cq-group-character-v1244{position:absolute;display:block;max-width:none;max-height:none;object-fit:contain;object-position:center bottom;transform:none;filter:none;z-index:1}
.cq-group-character-name-v1244{position:absolute;translate:-50% 0;font:400 clamp(.55rem,1.8vw,.9rem)/1.15 Georgia,serif;white-space:nowrap;z-index:2}
.cq-group-thankyou-v1244{top:78.5%;font-size:clamp(1.05rem,3.3vw,1.6rem);font-weight:700}
.cq-group-found-v1244{top:83%;font-size:clamp(.8rem,2.5vw,1.2rem)}
.cq-group-footer-v1244{top:89.5%;font:400 clamp(.5rem,1.6vw,.75rem)/1.2 Arial,sans-serif!important}
.cq-group-separate-v1244{top:92%;font:400 clamp(.45rem,1.4vw,.65rem)/1.2 Arial,sans-serif!important}
.cq-group-print-sheet-v1244{display:none}
@media(max-width:460px){.cq-group-dialog-v1244{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);padding:0 14px 18px}.cq-group-actions-v1244{flex-direction:column}.cq-group-actions-v1244 button{width:100%}}
@page{size:portrait;margin:12mm}
@media print{
 body.cq-group-printing-v1244{margin:0!important;padding:0!important;width:auto!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}
 body.cq-group-printing-v1244>*{display:none!important}
 body.cq-group-printing-v1244>#cq-group-print-sheet-v1244{display:flex!important;position:static!important;justify-content:center!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;break-inside:avoid;page-break-inside:avoid}
 #cq-group-print-sheet-v1244>.cq-group-picture-v1244{box-sizing:border-box;width:178mm!important;max-width:100%!important;height:243mm!important;aspect-ratio:auto!important;margin:0!important;padding:0!important;border:.25mm solid #82947b;border-radius:0;box-shadow:none;break-inside:avoid;page-break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 #cq-group-print-sheet-v1244 .cq-group-brand-v1244{font-size:27pt}
 #cq-group-print-sheet-v1244 .cq-group-subtitle-v1244{font-size:17pt}
 #cq-group-print-sheet-v1244 .cq-group-edition-v1244{font-size:9pt!important}
 #cq-group-print-sheet-v1244 .cq-group-character-name-v1244{font-size:11pt}
 #cq-group-print-sheet-v1244 .cq-group-thankyou-v1244{font-size:18pt}
 #cq-group-print-sheet-v1244 .cq-group-found-v1244{font-size:12pt}
 #cq-group-print-sheet-v1244 .cq-group-footer-v1244{font-size:8pt!important}
 #cq-group-print-sheet-v1244 .cq-group-separate-v1244{font-size:7pt!important}
}

/* troublemaker-events-v12.44.css */
/* Approved artwork will share its area's source plane; it never owns input. */
.troublemaker-appearance-v1244 {
  position: absolute;
  display: block;
  translate: -50% -100%;
  object-fit: contain;
  object-position: center bottom;
  z-index: 3;
  pointer-events: none!important;
  user-select: none;
  filter: brightness(.96) saturate(.96) drop-shadow(0 2px 1px #22342233);
  animation: troublemaker-quiet-peek-v1244 4s ease-in-out both;
}
.troublemaker-appearance-v1244[hidden] { display: none!important; }
.troublemaker-appearance-v1244[data-gesture="pause"] { animation-name: troublemaker-quiet-pause-v1244; }
@keyframes troublemaker-quiet-peek-v1244 {
  0%,100% { opacity: 0; transform: translateY(3px) rotate(-1deg); }
  15%,82% { opacity: 1; transform: translateY(0) rotate(0); }
}
@keyframes troublemaker-quiet-pause-v1244 {
  0%,100% { opacity: 0; transform: rotate(.5deg); }
  18%,82% { opacity: 1; transform: rotate(0); }
}
@media(prefers-reduced-motion:reduce) {
  .troublemaker-appearance-v1244 { display: none!important; animation: none!important; }
}

/* workbook-collections-v12.45.css */
.collection-correction-v1245{margin:1rem 0;padding:1rem;border:1px solid #ac9871;border-radius:14px;background:#fff9e7;color:#2d3e2b;line-height:1.55;overflow-wrap:anywhere}.collection-correction-v1245[hidden]{display:none}.collection-correction-v1245 h3{font:inherit;font-size:1.1rem;margin:0 0 .5rem}.collection-correction-v1245 p{margin:0 0 .75rem}.collection-correction-v1245 button{min-height:44px;padding:.6rem 1rem}

/* market-frame-v12.45.css */
/* The approved Market is a 2172 x 724 panorama. Keep its sharp, uniformly
   contained painting AND its matching hit plane unchanged. Taller desktop
   windows use that same painting as a quiet atmospheric backdrop instead of
   the old flat green letterbox. This is not newly illustrated scene content. */
#journey-viewport[data-navigation-mode-v1227=desktop][data-stop=lane] #lane-world-v1210{
 background:transparent!important;
 isolation:isolate;
 overflow:hidden;
}
#journey-viewport[data-navigation-mode-v1227=desktop][data-stop=lane] #lane-world-v1210::before{
 content:"";
 position:absolute;
 inset:-12px;
 z-index:-2;
 pointer-events:none;
 background:url("assets/market-v12.45/market-central-tree-v12.45.png") center/cover no-repeat;
 filter:blur(9px) saturate(.86) brightness(.88);
}
#journey-viewport[data-navigation-mode-v1227=desktop][data-stop=lane] #lane-world-v1210::after{
 content:"";
 position:absolute;
 inset:0;
 z-index:-1;
 pointer-events:none;
 background:linear-gradient(180deg,#15271c21 0%,transparent 19%,transparent 83%,#15271c2b 100%);
}
#journey-viewport[data-navigation-mode-v1227=desktop][data-stop=lane] #lane-plate-v1210{
 box-shadow:none;
}
/* There is no new camera, panning rule, animation or pointer surface.
   Phone/tablet retain the existing full-height panning frame. */

/* Readable native lettering on small fitted timber plaques. The camera's
   control-size variable compensates for zoom, keeping text at least 14px on
   screen without changing the source art, target bounds or font weight. */
.market-name-plaque-v1245{
 position:absolute;
 display:grid;
 place-items:center;
 box-sizing:border-box;
 width:max(112px,calc(var(--lane-control-size,56px)*1.65));
 min-height:max(29px,calc(var(--lane-control-size,56px)*.54));
 padding:4px 7px;
 translate:-50% -50%;
 border:1.3px solid #765037;
 border-radius:4px 3px 4px 3px;
 background:linear-gradient(5deg,#d9b47b,#f5ddb0 48%,#e5c38e);
 color:#432e22;
 font:400 max(14px,calc(var(--lane-control-size,56px)*.25))/1.15 'Quest Display',Georgia,serif;
 text-align:center;
 text-wrap:balance;
 box-shadow:0 2px 3px #3a261d55;
 pointer-events:auto;
}
.market-name-plaque-v1245::before{
 content:"";
 position:absolute;
 top:-5px;
 height:5px;
 left:12%;
 right:12%;
 border-left:1px solid #765037;
 border-right:1px solid #765037;
}
.market-portal-v1225:focus-visible .market-name-plaque-v1245{
 outline:2px solid #fff4cd;
 outline-offset:2px;
}
.market-portal-v1225[data-market-shop=posadas] .market-name-plaque-v1245{
 width:max(100px,calc(var(--lane-control-size,56px)*1.5));
}
/* The camera disables pointer input on decorative descendants. These visible
   timber signs are part of their parent shop control, including the portion
   hung above its entrance rectangle. */
#scene-camera .market-name-plaque-v1245{
 pointer-events:auto!important;
}

/* Validated source delta: adjacent Market plaques, v12.45.1. */
.market-portal-v1225:is([data-market-shop=posadas],[data-market-shop=dongzhi]) .market-name-plaque-v1245{
 width:max(100px,calc(var(--lane-control-size,56px)*1.1));
 padding-inline:5px;
}
.market-portal-v1225[data-market-shop=dongzhi] .market-name-plaque-v1245{
 margin-left:35px;
}
