.courtyard-slot:empty,.world:not(.is-ready) .courtyard-slot,
.world.is-ready #world-scene,.world.is-ready .scene-playback,.world.is-ready #motion-pause,
.world.is-ready #world-subtitle{display:none}
.illustrated-entrance .world.is-ready{padding:14px clamp(8px,2vw,28px) 5px}
.world.is-ready .world-intro{margin:0 auto 12px}
.world.is-ready .world-intro .eyebrow{font-size:10px;margin-bottom:3px}
.illustrated-entrance .world.is-ready .world-intro h1{font-size:clamp(21px,3vw,33px)}
.zone-wrap{margin:0 auto;width:min(100%,1120px,max(600px,calc((100svh - 212px)*1.5)));text-align:center}
.zone-stage{width:100%;aspect-ratio:3/2;position:relative;isolation:isolate;touch-action:pan-y;
 background:#10141b;outline:1px solid #c5a57265;box-shadow:0 12px 45px #0006}
.zone-stage:focus-visible{outline:2px solid #efce8c;outline-offset:3px}
.zone-paint,.zone-engine,.zone-doors{position:absolute;inset:0}
.zone-paint{background-size:100% 100%;background-repeat:no-repeat}
.zone-engine{pointer-events:none}.zone-engine canvas{display:block}
.zone-doors{pointer-events:none}
.zone-door{position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;padding:0;
 background:transparent;border:1px solid transparent;border-radius:42% 42% 12% 12%;
 color:#fff1c9;pointer-events:auto;cursor:pointer;font:600 14px/1.3 'Source Sans 3',sans-serif}
.zone-door:hover,.zone-door:focus-visible{background:#fff0aa18;outline:2px solid #fff2bd;outline-offset:0}
.zone-door span{position:absolute;bottom:3%;left:50%;transform:translateX(-50%);opacity:0;
 white-space:nowrap;padding:.22em .65em;background:#101825ec;color:#ffedc2;border:1px solid #ddbf7c;border-radius:3px;text-shadow:0 1px #000}
.zone-door:focus-visible span,.zone-door[data-door=exit] span{opacity:1}
@media(hover:hover){.zone-door:hover span{opacity:1}}
.zone-door[data-door=exit] span{bottom:10%}
.zone-note{min-height:1.4em;margin:9px 0 0;color:#e3cca4;font:400 14px/1.4 'Source Sans 3',sans-serif}
.world.is-ready .world-footer{margin:5px auto 0;padding:0}
.village-panel .zone-contents>a{display:block;color:#f0d29a;padding:12px 0;text-align:left}
.village-panel button:focus-visible,.village-panel a:focus-visible{outline:2px solid #ffdf91;outline-offset:2px}
@media(max-width:640px){.zone-wrap{width:100%}.zone-door{font-size:12px}.zone-note{font-size:13px}.zone-stage:focus-visible{outline-offset:0}}
@media(prefers-reduced-motion:no-preference){.zone-wrap[data-zone]{animation:zone-arrival .22s ease-out}@keyframes zone-arrival{from{opacity:.35}to{opacity:1}}}

.site-header>:not(.wordmark){display:none!important}
.site-header{justify-content:flex-start}
.studio-site-footer>:not(nav),.studio-site-footer nav a[href^="#"],body:has(#entrance:not([hidden])) .studio-site-footer{display:none}
.village-guest{display:inline-flex;align-items:center;justify-content:center;min-height:44px;color:var(--muted);font:400 14px/1.3 var(--sans)}
.village-guest:focus-visible{outline:2px solid #efce8c;outline-offset:3px}
.chapter-choice:disabled{appearance:none;opacity:1;cursor:default}
#village-interior{padding:14px clamp(8px,2vw,28px) 1.4rem}
#village-interior[hidden]{display:none}
#village-interior>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 auto 10px;
 width:min(100%,1120px,max(600px,calc((100svh - 212px)*1.5)))}
#village-interior .eyebrow{margin:0 0 3px;color:#dfbf80}
#interior-title{margin:0;font:400 clamp(24px,3.2vw,39px)/1.2 Cinzel,serif;color:#f5e5c4}
#village-interior>header a{display:inline-flex;align-items:center;min-height:44px;color:#ebcd91;font:500 15px 'Source Sans 3',sans-serif}
#village-interior .zone-door:hover:not(:focus-visible){outline:none;background:transparent}
.village-panel[data-browsing]{width:min(44rem,calc(100% - 1.25rem));max-height:88svh;padding:0;
 overflow:hidden;background:#101b25;color:#f5e5c4;box-shadow:0 16px 90px #000a}
.village-panel[data-browsing][open]{display:flex;flex-direction:column}
.browse-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;
 background:#14212a;border-bottom:1px solid #aa89585c}
.browse-head .eyebrow{margin:0 0 3px;color:#dfbc76}
.browse-head h2{margin:0;color:#fae9c9;font:400 clamp(21px,3vw,30px)/1.2 Cinzel,serif}
.browse-body{overflow:auto;overscroll-behavior:contain;padding:1rem 1.25rem 1.25rem}
.village-panel[data-browsing] button{cursor:pointer;font:500 16px/1.35 'Source Sans 3',sans-serif;color:#f4dfb6}
.browse-close,.browse-back{border:1px solid #aa895888;border-radius:3px;background:#0c161f;padding:6px 14px;flex-shrink:0}
.browse-intro,.browse-meta{margin:0 0 .8rem;color:#e7cca0}
.browse-list{display:grid;gap:7px}
.village-panel .browse-item{display:flex;align-items:center;gap:14px;padding:10px 12px;width:100%;text-align:left;
 border:1px solid #baa06b42;border-radius:3px;background:#15232e}
.browse-item:hover,.browse-close:hover,.browse-back:hover{background:#22333e}
.browse-item img{width:64px;height:64px;object-fit:contain;border-radius:2px;background:#101920}
.browse-item small,.browse-item strong{display:block}.browse-item small,.browse-article small{font:400 13px/1.45 'Source Sans 3',sans-serif;color:#d2bb90}
.browse-item strong{font:500 17px/1.3 'Source Sans 3',sans-serif;color:#fff1d6}
.browse-article{margin:1.2rem auto 0;max-width:60ch;line-height:1.65}
.browse-article h3{margin:.3em 0 .6em;font:400 clamp(21px,3.5vw,31px)/1.25 Cinzel,serif;color:#fde5b6}
.browse-article p{margin:.85em 0;font-size:17px}.browse-article .browse-meta{font-size:14px}
.browse-article img{max-width:100%;height:auto;max-height:48svh;object-fit:contain;display:block;margin:1rem auto}
@media(max-width:520px){.browse-head,.browse-body{padding:12px}.browse-item img{width:50px;height:55px}.browse-close{padding-inline:8px}.browse-article p{font-size:16px}}

/* The selected book stays in the library's modal. Only the current leaf is exposed to a screen reader. */
.village-panel[data-browsing=book]{width:min(47rem,calc(100vw - 20px));height:min(47rem,90dvh);max-height:94dvh;
  color:#eddfc4;background:#101b24;border:1px solid #92794f;overscroll-behavior:contain}
.village-panel[data-browsing=book] button{justify-content:center;border:0;background:transparent;color:#ecd9b2;min-width:44px;min-height:44px;padding:4px 10px}
.village-panel[data-browsing=book] button:hover{background:#e6c47b13}
.village-panel[data-browsing=book] button:disabled{opacity:.32;cursor:default}
.village-panel[data-browsing=book]:has(.book-pickup){width:min(24rem,calc(100vw - 24px));height:fit-content;background:radial-gradient(ellipse at 50% 35%,#20333c,#0d1821 76%)}
.book-pickup{display:grid;justify-items:center;gap:5px;padding:clamp(12px,4vh,32px)}
.village-panel[data-browsing=book] .held-cover{display:grid;gap:12px;justify-items:center;padding:4px 10px;background:transparent}
.held-cover img,.held-cover .journal-cover{display:block;width:auto;max-width:100%;height:min(50dvh,22rem,100vw);object-fit:contain;
  border-radius:2px 4px 4px 2px;box-shadow:3px 2px 0 #8a7048,5px 3px 0 #413a2d,0 12px 26px #0008}
.held-cover span{font:500 16px/1.3 'Source Sans 3',sans-serif;color:#f2d694}
.book-pickup .book-put{font-size:14px;color:#c6bca7}
.book-head,.book-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;padding:3px 15px}
.book-head h2{font:500 clamp(17px,3vw,25px)/1.1 Cinzel,serif;color:#efdfbd;margin:0}
.book-head{border-bottom:1px solid #9a835348}.book-head .book-put{font-size:14px}
.book-open{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 48px;padding:12px 6px 8px 14px}
.book-leaf{min-height:0;min-width:0;display:flex;flex-direction:column;position:relative;border-radius:2px 4px 4px 2px;
  padding:clamp(12px,3.5vw,32px) clamp(14px,4.2vw,46px);color:#302823;
  background:linear-gradient(90deg,#c9b898 0,#e8dac1 1.5%,#f4e9d3 5%,#f4ead7 92%,#ecdfc5);
  box-shadow:2px 1px #ad9873,3px 2px #f3e3c6,4px 3px #a38961}
.chapter-choice{flex:none;max-width:100%;align-self:flex-start;min-height:37px;margin:0 0 clamp(8px,1.7vh,18px);
  border:0;border-bottom:1px solid #9c8453;border-radius:0;background:transparent;color:#513d27;
  font:500 clamp(15px,2.8vw,21px)/1.3 Cinzel,serif;text-overflow:ellipsis;cursor:pointer}
.leaf-window{position:relative;overflow:hidden;min-height:0;flex:1}
.leaf-flow{margin:0;height:100%;column-count:1;column-gap:0;column-fill:auto;color:#302823;
  font:400 clamp(17px,1.65vw,20px)/1.53 Georgia,'Times New Roman',serif;overflow-wrap:break-word}
.leaf-flow p{margin:0 0 .72em;font:inherit;letter-spacing:normal;color:inherit;orphans:2;widows:2}
.leaf-flow img{display:block;width:100%;height:var(--illustration-height);object-fit:contain;break-inside:avoid}
.leaf-flow h2,.leaf-flow h3{margin:0 0 .45em;color:#473925;font:500 clamp(20px,2.5vw,27px)/1.22 Cinzel,Georgia,serif;break-after:avoid}
.leaf-flow .entry-byline{color:#715c3f;font:500 13px/1.4 'Source Sans 3',sans-serif;letter-spacing:.045em}
.book-rail{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding-left:4px}
.book-rail svg{stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.book-rail button[aria-pressed=true]{color:#ffcf75;background:#eac16f15;border-radius:50%}
.book-rail [data-action=Like][aria-pressed=true] svg{fill:currentColor}
.book-foot nav{display:flex;align-items:center;gap:4px}.page-count{font:14px/1.3 'Source Sans 3',sans-serif;font-variant-numeric:tabular-nums;color:#cbbd9d}
.book-foot .book-restart{font-size:14px}.village-panel .chapter-choice:focus-visible{outline:2px solid #785a2b;outline-offset:2px}
.book-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.book-sr.book-toast{inset:auto 12px 54px auto;width:auto;height:auto;margin:0;clip-path:none;white-space:normal;max-width:85%;
  background:#13232d;color:#ffe6b8;padding:8px 12px;font:14px/1.35 'Source Sans 3',sans-serif;border:1px solid #a58a60;pointer-events:none}
.chapter-comments{width:min(23rem,calc(100vw - 28px));height:fit-content;max-height:80dvh;overflow:auto;overscroll-behavior:contain;
  background:#14222d;color:#f2dfb9;border:1px solid #a58a60;padding:15px 18px}
.chapter-comments::backdrop{background:#070d15a8}
.chapter-comments header{display:flex;justify-content:space-between;align-items:center}.chapter-comments h3{margin:0;font:20px/1.25 Cinzel,serif}
.chapter-comments .comments-scope,.comment-list small{color:#cbb998;font-size:13px}.chapter-comments .comments-scope{margin:0 0 10px}
.comment-list{max-height:28dvh;overflow:auto}.comment-list>div{border-top:1px solid #ad946444;padding:7px 0}.comment-list p{margin:3px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.chapter-comments form{display:grid;gap:6px;margin-top:12px}.chapter-comments label{font-size:14px}
.chapter-comments textarea{width:100%;box-sizing:border-box;resize:vertical;max-height:18dvh;background:#091720;color:#fff1d4;border:1px solid #8b795c;padding:8px;font:16px/1.4 'Source Sans 3',sans-serif}
.village-panel .chapter-comments button[type=submit]{justify-self:end;border:1px solid #8b795c}
@media(max-width:540px){.book-open{padding:7px 1px 5px 7px;grid-template-columns:minmax(0,1fr) 45px}.book-leaf{padding:14px 15px}.book-head,.book-foot{padding-inline:6px}.chapter-choice{font-size:16px}.book-rail{padding:0}}
@media(max-height:500px){.book-open{padding-block:3px}.book-leaf{padding-block:6px}.chapter-choice{min-height:28px;margin-bottom:4px}.book-head,.book-foot{padding-block:0}.book-rail{gap:0}}

.illustrated-entrance .world.is-growing{position:relative;padding:14px clamp(8px,2vw,28px) 5px}
.world.is-growing .world-intro{margin:0 auto 12px}
.world.is-growing .world-intro .eyebrow{font-size:10px;margin-bottom:3px}
.illustrated-entrance .world.is-growing .world-intro h1{font-size:clamp(21px,3vw,33px)}
.world.is-growing #world-subtitle{display:none}
.illustrated-entrance .world.is-growing .story-stage{display:block;width:min(100%,1120px,max(600px,calc((100svh - 212px)*1.5)));aspect-ratio:3/2;margin:0 auto}
.world.is-growing .scene-playback{position:absolute;left:0;right:0;bottom:0;z-index:3}
.world.is-growing .world-footer{visibility:hidden;min-height:45px}
.world .zone-wrap[data-zone=yard]{animation:none}
.zone-wrap[data-zone=shop] [data-door=paintings],.zone-wrap[data-zone=shop] [data-door=coloring]{border-radius:3px}
.village-panel .full-art{color:#f0ce8f;text-decoration:underline;text-underline-offset:.25em}
@media(max-width:640px){.illustrated-entrance .world.is-growing .story-stage{width:100%}}

.illustrated-entrance .world{position:relative;isolation:isolate;overflow:hidden}
.yard-sky{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 72% 39%,#e4b8794f,transparent 47%),radial-gradient(ellipse at 49% 45%,#47646b 0%,#264353 46%,#112333 72%,#081421 100%);mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 78%,transparent 100%)}
.world.is-growing .yard-sky{animation:sky-arrival 6.65s linear both}
@keyframes sky-arrival{0%,70%{opacity:0}90%,100%{opacity:1}}
.sun-track{position:absolute;left:75%;top:22%;width:clamp(44px,5.2vw,90px);aspect-ratio:1;animation:sun-track 80s ease-in-out infinite alternate}
.sun-disc,.sky-rays{position:absolute;border-radius:50%}
.sun-disc{inset:0;background:radial-gradient(circle at 38% 36%,#fff7cf 18%,#ffe6ae 65%,#efd399 88%);box-shadow:0 0 28px 15px #ffd59069,0 0 87px 38px #fed49235}
.sky-rays{inset:-420%;background:repeating-conic-gradient(from -19deg,transparent 0 14deg,#ffdda02b 16deg,transparent 21deg 36deg);mask-image:radial-gradient(circle,#000 0%,#000b 30%,transparent 69%);animation:rays 32s ease-in-out infinite alternate}
.cloud{position:absolute;display:block;width:56%;aspect-ratio:3/1;background:var(--courtyard-cloud) center/100% 100% no-repeat;will-change:transform}
.cloud.far{left:-12%;top:20%;opacity:.52;animation:far-bank 90s ease-in-out infinite alternate}
.cloud.near{right:-12%;top:37%;opacity:.72;animation:near-bank 72s ease-in-out infinite alternate}
.cloud.mist{width:72%;left:-18%;top:65%;opacity:.28;animation:far-bank 55s ease-in-out infinite alternate-reverse}
@keyframes sun-track{to{transform:translate(-22px,-9px)}}
@keyframes rays{to{transform:rotate(13deg)}}
@keyframes far-bank{to{transform:translate(16%,4%)}}
@keyframes near-bank{to{transform:translate(-16%,-7%)}}
.world.is-ready .zone-wrap[data-zone=yard],.illustrated-entrance .world.is-growing .story-stage{width:min(100%,1360px,max(690px,calc((100svh - 256px)*1.5)))}
.zone-wrap[data-zone=yard] .zone-stage{background:transparent;outline-color:transparent;box-shadow:none}
.zone-wrap[data-zone=yard] .zone-stage:focus-visible{outline:1px dashed #efce8c80}
.zone-wrap[data-zone=yard]:has(canvas) .zone-paint{visibility:hidden}
.world .world-intro{position:relative}
.world .world-intro h1{color:#fff0d4;text-shadow:0 2px 18px #08101b}
.water-light{position:absolute;inset:0;pointer-events:none;width:100%;height:100%}
.zone-wrap:not([data-zone=yard]) :is(.water-light,[data-climb],[data-down],[data-breeze]){display:none}
.water-flow{opacity:.66;animation:canal-flow 3.6s linear infinite}
@keyframes canal-flow{0%{transform:translate(5px,-10px);opacity:0}35%,65%{opacity:.7}100%{transform:translate(-8px,15px);opacity:0}}
.floating-leaf{animation:leaf-drift 9s linear infinite}
@keyframes leaf-drift{0%{transform:translate(14px,-13px);opacity:0}12%,84%{opacity:.9}100%{transform:translate(-50px,85px);opacity:0}}
.lantern-light{animation:wick 4.5s ease-in-out infinite alternate}
@keyframes wick{from{opacity:.22}to{opacity:.85}}
.welcome{opacity:0;transition:opacity .4s}
[data-approach=shop] .welcome.shop,[data-approach=hollow] .welcome.hollow,[data-approach=library] .welcome.library{opacity:1}
.yard-controls{display:flex;gap:.45rem;justify-content:center;align-items:center;flex-wrap:wrap;margin:7px 0}
.yard-controls button,.hollow-prompt button{min-height:44px;padding:6px 14px;border:1px solid #b5945c7a;border-radius:4px;background:#0a1925e8;color:#f6deb3;cursor:pointer;font:500 14px/1.3 var(--sans)}
.yard-controls kbd{font:11px var(--sans);opacity:.7}
.yard-controls button:focus-visible,.hollow-prompt button:focus-visible{outline:2px solid #ffe2a1;outline-offset:2px}
.yard-controls [hidden]{display:none}
.yard-controls [aria-pressed=true]{border-color:#f3ce82}
.hollow-prompt{max-width:min(410px,88vw);padding:26px;background:#0f1f2b;color:#f6e4bf;border:1px solid #b69a68}
.hollow-prompt h2{font:28px var(--serif);margin:8px 0}.hollow-prompt button{margin-top:8px}
.hollow-prompt .fixture-hint{font-size:.85em;color:#ceb98d}.hollow-prompt::backdrop{background:#04101bc9}
.zone-door.ledge{border-radius:45%;min-width:26px;min-height:22px}
.still-sky :is(.cloud,.sun-track,.sky-rays,.water-flow,.floating-leaf,.lantern-light){animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.yard-sky,.yard-sky *,.water-light *{animation:none!important;transition:none!important}}
@media(max-width:640px){.world.is-ready .zone-wrap[data-zone=yard],.illustrated-entrance .world.is-growing .story-stage{width:100%}.sun-track{left:83%;top:19%}.zone-wrap[data-zone=yard] .zone-door{min-width:28px;min-height:28px}.yard-controls button{font-size:13px;padding:6px 10px}}

.hollow-prompt .hollow-login{display:inline-block;padding:12px 15px;border:1px solid #cead70;color:#ffdf9e;text-decoration:none}.hollow-login:focus-visible{outline:2px solid #ffdf9e}
