/* Keep the entire stall and its objects aligned in either orientation. */
.landing-page.is-woodland-shop {overflow:hidden;-webkit-text-size-adjust:100%}
.landing-page.is-woodland-shop .site-header {display:none}
.landing-page.is-destination main > #merch {display:block;padding:0;margin:0;max-width:none;min-height:0;height:100dvh;border-radius:0;overflow:hidden}
.stall-stage {position:relative;width:100%;height:100%;isolation:isolate}
.stall-stage picture,.stall-scene {display:block;width:100%;height:100%}
.stall-scene {object-fit:fill;opacity:1}
.stall-stage .sr-only {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.stall-stage .woodland-link {z-index:2;min-height:44px;min-width:44px}
.stall-clothing {left:5%;top:23%;width:22%;height:32%}
.stall-mugs {left:28%;top:28%;width:24%;height:28%}
.stall-bags {left:68%;top:22%;width:17%;height:31%}
.stall-stickers {left:8%;top:58%;width:20%;height:29%}
.stall-magnets {left:30%;top:57%;width:22%;height:29%}
.stall-seasonal {left:55%;top:58%;width:21%;height:28%}
.stall-home {left:79%;top:55%;width:20%;height:31%}
.stall-all {left:40%;top:20%;width:20%;height:8%}
.stall-books {left:53%;top:33%;width:16%;height:22%}
.stall-hint {position:absolute;left:41%;top:23%;width:18%;margin:0!important;color:#4b2d14!important;text-align:center;font:500 clamp(9px,1.15vw,17px)/1.2 Fredoka,sans-serif!important;pointer-events:none;z-index:3}
.stall-sign {position:absolute;bottom:max(12px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;box-shadow:none;min-height:44px;min-width:44px;z-index:3;cursor:pointer}
.stall-sign img {display:block;width:100%;height:auto;max-height:90px;object-fit:contain;filter:drop-shadow(1px 3px 3px #28140d70)}
.stall-back {left:2%;width:clamp(140px,25vw,320px)}
.stall-music {right:2%;width:clamp(130px,21vw,260px)}
.stall-sign:hover {background:transparent;filter:brightness(1.08);transform:none}
.stall-sign:focus-visible {outline:3px solid #fff0ad;outline-offset:3px}
.stall-stage .song-controls {position:fixed;left:auto;right:calc(4vw + clamp(130px,21vw,260px));bottom:18px;top:auto;transform:none;max-width:calc(100vw - 24px);z-index:5;background:rgba(255,253,247,.96)}
.stall-dialog {width:min(92vw,780px);max-height:92dvh;margin:auto;padding:42px 28px 26px;border:1px solid #b48b50;border-radius:10px 6px 15px 8px;background:linear-gradient(120deg,#fff7df,#efdfb6);color:#4d371f;box-shadow:0 18px 80px #29170e90;overflow:auto}
.stall-dialog::backdrop {background:#2a311dc4}
.stall-close {position:absolute;right:8px;top:6px;padding:0;width:44px;height:44px;border:0;background:transparent;color:#4d371f;font-size:28px;cursor:pointer}
.stall-close:focus-visible {outline:3px solid #bb793b;outline-offset:2px}
#merch .stall-dialog h2 {font:500 clamp(24px,4vw,36px)/1.12 Fredoka,sans-serif;letter-spacing:0;margin:0 0 20px;color:#4b6033}
.stall-display {display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:center}
.stall-photo {display:block;width:100%;height:46dvh;object-fit:contain;filter:drop-shadow(0 4px 6px #5d421c28)}
.stall-choices {display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.stall-choices button {min-height:44px;padding:8px 14px;border:1px solid #b4c191;border-radius:24px 5px 24px 5px;color:#395231;background:#e8ebcc;font:500 16px Fredoka,sans-serif;cursor:pointer}
.stall-choices button[aria-pressed=true] {background:#4b6637;color:#fff8df}
.stall-choices button:focus-visible {outline:3px solid #ba803a;outline-offset:2px}
.stall-caption {font:500 24px Fredoka,sans-serif;margin:0 0 16px;color:#594023}
.stall-visit {display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;max-width:290px;margin:0 0 14px}
.stall-visit img {display:block;width:100%;height:auto;max-height:110px;object-fit:contain;filter:drop-shadow(1px 3px 3px #28140d60)}
.stall-visit:focus-visible {outline:3px solid #ba803a;outline-offset:2px}
.stall-all-collections {display:inline-block;padding:10px 0;color:#4b6033;font:500 15px Fredoka,sans-serif;min-height:44px;text-underline-offset:4px}
.stall-book-cover {display:block;width:100%;height:43dvh;object-fit:contain;filter:drop-shadow(3px 6px 5px #4a301c50)}
#merch .stall-book-edition {font:500 13px Fredoka,sans-serif;color:#7e5b33;margin:0 0 10px}
.stall-book-title {font:500 clamp(21px,2.3vw,29px)/1.15 Fredoka,sans-serif;color:#4c6134;margin:0 0 14px}
#merch .stall-book-summary {font:400 15px/1.5 'DM Sans',sans-serif;color:#5f4d35;margin:0 0 18px}
#merch .stall-book-upcoming {display:inline-block;padding:12px 18px;color:#6b512f;background:#fff3cf;border-radius:4px;font:500 18px Fredoka,sans-serif}
.stall-book-navigation {display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}
.stall-book-navigation button {min-height:44px;min-width:44px;border:1px solid #b3bc89;border-radius:24px 5px 24px 5px;background:#4b6637;color:#fff8df;font:500 22px Fredoka,sans-serif;cursor:pointer}
.stall-book-navigation button:focus-visible {outline:3px solid #ba803a;outline-offset:2px}
.stall-book-count {color:#695134;font:500 15px Fredoka,sans-serif}
@media (orientation:portrait) {
  .stall-clothing {left:1%;top:25%;width:45%;height:20%}
  .stall-mugs {left:49%;top:28%;width:49%;height:17%}
  .stall-bags {left:50%;top:45%;width:47%;height:16%}
  .stall-stickers {left:5%;top:46%;width:36%;height:14%}
  .stall-magnets {left:5%;top:61%;width:29%;height:15%}
  .stall-seasonal {left:36%;top:61%;width:31%;height:15%}
  .stall-home {left:70%;top:61%;width:28%;height:15%}
  .stall-all {left:23%;top:17%;width:54%;height:6%}
  .stall-books {left:47%;top:23%;width:30%;height:10%}
  .stall-hint {left:34%;top:19%;width:32%;font-size:clamp(9px,2.7vw,15px)!important}
  .stall-back {left:2%;width:48%}
  .stall-music {right:2%;width:40%}
  .stall-stage .song-controls {left:50%;right:auto;bottom:12px;transform:translateX(-50%)}
  .stall-stage:has(.song-controls:not([hidden])) .stall-sign {bottom:75px}
  .stall-display {grid-template-columns:1fr;gap:12px;text-align:center}
  .stall-photo {height:32dvh}
  .stall-choices {justify-content:center;margin-bottom:10px}
  #merch .stall-dialog h2 {text-align:center;margin-bottom:14px}
  .stall-caption {font-size:20px;margin-bottom:8px}
  .stall-visit {margin:0 auto 4px;max-width:220px}
  .stall-visit img {max-height:66px}
  .stall-book-cover {height:29dvh}
  .stall-book-title {font-size:23px;margin-bottom:8px}
  #merch .stall-book-summary {font-size:14px;line-height:1.4;margin-bottom:10px}
  #merch .stall-book-edition {margin-bottom:5px}
  .stall-book-navigation {margin-top:10px}
}
@media (orientation:landscape) and (max-height:450px) {
  .stall-sign {bottom:8px}
  .stall-sign img {max-height:52px}
  .stall-back {width:26%}
  .stall-music {width:21%}
  .stall-stage .song-controls {right:25%;bottom:8px}
  .stall-dialog {padding:36px 22px 16px}
  .stall-photo {height:50dvh}
  #merch .stall-dialog h2 {font-size:24px;margin-bottom:8px}
  .stall-caption {font-size:20px;margin-bottom:8px}
  .stall-choices {margin-bottom:8px}
  .stall-choices button {font-size:14px;padding:6px 10px}
  .stall-visit {margin-bottom:0;max-width:200px}
  .stall-book-cover {height:42dvh}
  #merch .stall-book-summary {font-size:13px;line-height:1.3;margin-bottom:8px}
  .stall-book-title {font-size:21px;margin-bottom:8px}
  .stall-book-navigation {margin-top:8px}
}
@media (max-width:319px) {
  .stall-stage .song-controls {display:grid;grid-template-columns:30px minmax(20px,1fr) 25px 60px;width:calc(100vw - 16px);gap:3px;padding:4px}
  .stall-stage .song-controls input {min-width:0;width:100%}
  .stall-stage .song-controls .music-toggle {font-size:10px;padding:3px}
  .stall-stage:has(.song-controls:not([hidden])) .stall-sign {bottom:60px}
  .stall-dialog {padding:42px 14px 16px}
  .stall-choices {gap:4px}
  .stall-choices button {font-size:12px;padding:6px 10px}
  .stall-photo {height:27dvh}
}
@media (orientation:portrait) and (max-height:700px) {
  .stall-dialog {padding:36px 20px 16px}
  #merch .stall-dialog h2 {font-size:24px;margin-bottom:10px}
  .stall-photo {height:22dvh}
  .stall-choices {gap:4px;margin-bottom:8px}
  .stall-choices button {font-size:14px;padding:6px 10px}
  .stall-caption {margin-bottom:4px}
  .stall-visit img {max-height:52px}
  .stall-book-cover {height:23dvh}
  .stall-book-title {font-size:20px;margin-bottom:5px}
  #merch .stall-book-summary {font-size:13px}
}
