*{box-sizing:border-box}html,body,#atlas{height:100%;width:100%;margin:0;overflow:hidden;background:#e8e9ee}body{font-family:Georgia,"Songti SC","SimSun",serif;color:#332e25}#atlas{position:relative;touch-action:none}#scene{width:100%;height:100%;display:block;user-select:none;cursor:crosshair}.sr{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.smoke{animation:drift 3.5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:bottom}.flame{animation:flit .38s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center bottom}@keyframes drift{to{transform:skewX(9deg) scaleY(1.08);opacity:.42}}@keyframes flit{to{transform:scale(.93,1.12)}}button{cursor:pointer}#visit{position:absolute;transform:translate(-50%,-100%) rotate(-3deg);color:#2e2d26;background:#fff4d8;border:1.5px solid #655647;box-shadow:2px 3px #494334;border-radius:42% 45% 36% 35%;font:bold 17px Georgia;min-width:42px;height:40px}#visit[hidden]{display:none}dialog{color:#332e25;width:min(480px,90vw);max-height:85dvh;padding:22px 26px 28px;background:#faf7ee;border:1px solid #b6ada0;border-radius:12px;box-shadow:0 14px 60px #3e465445}dialog::backdrop{background:#37455266}dialog h2,dialog h3{margin:.65em 0 .35em}dialog p{line-height:1.7}.dialog-head{border-bottom:1px solid #706851;padding-bottom:8px;display:flex;align-items:center;justify-content:space-between;letter-spacing:.14em;font-size:12px}.dialog-head button{border:0;background:none;font:26px Georgia;color:inherit}.folio,.tags{font-size:12px;letter-spacing:.09em}.cover{background:#3e655f;color:#f6efdd;padding:16px 20px;margin-top:13px}.cover span,.cover b{display:block}.cover b{font:italic bold 36px Georgia}.media{max-width:100%;height:auto}a{color:#77452c}@media(prefers-reduced-motion:reduce){*{animation:none!important}}

.weather {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.weather[data-weather="snow"] > span {
  position: absolute;
  top: -12px;
  width: var(--size);
  height: var(--size);
  border-radius: 53% 47% 60% 40%;
  background: #fffefa;
  box-shadow: 0 1px 1px #aebacc66;
  opacity: var(--opacity);
  animation: winter-fall var(--fall) linear infinite;
}
@keyframes winter-fall {
  0%   { transform: translate(0, 0); }
  26%  { transform: translate(2.8vw, 27vh); }
  52%  { transform: translate(3.8vw, 54vh); }
  78%  { transform: translate(6.5vw, 81vh); }
  100% { transform: translate(7.5vw, calc(100vh + 24px)); }
}
@media (max-width: 600px) {
  .weather > span:nth-child(n+23) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .weather { display: none; }
}

/* A painted paper sheet floats over the forest; only its contents scroll. */
#details {
  border: 0; border-radius: 0; padding: 0; color: #403b33;
  width: min(540px, 96vw); max-width: none; max-height: none;
  background: transparent url("./assets/field-paper.svg") center / 100% 100% no-repeat;
  box-shadow: none; filter: drop-shadow(2px 7px 12px #352d2952);
}
#details::backdrop { background: #36484565; }
#paper-scroll { max-height: min(80dvh, 700px); margin: 22px 13px; padding: 4px 26px 17px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b7aa8b transparent; }
#close { position: absolute; right: 21px; top: 15px; z-index: 1; width: 38px; height: 38px; background: #fcfaf2; border: 1px solid #b1a18a; border-radius: 48% 44% 53% 41%; color: #6c584b; font: 25px Georgia; }
#details :focus-visible { outline: 2px dashed #795f4a; outline-offset: 1px; }
#close:focus:not(:focus-visible) { outline: none; }
.chapter { display:flex; align-items:center; justify-content:space-between; gap: 12px; margin: 10px 0 12px; padding: 6px 0 14px; border-bottom: 2px solid #c4b699; border-radius: 0 0 36% 1% / 0 0 3px 1px; }
.chapter img { width: 86px; height: 83px; object-fit:contain; transform:rotate(3deg); margin-right: 12px; }
.chapter small,.map-title small,.notes article>small,.sheet-foot { color: #786954; font-size: 12px; letter-spacing: .1em; }
#details h2 { font: bold clamp(25px,5vw,36px)/1.22 "Kaiti SC",KaiTi,STKaiti,serif; letter-spacing: .08em; margin: 8px 0; }
.chapter em { font: 14px KaiTi,serif; color:#6b7765; }
.notes { line-height:1.7; }
.notes h3 {font: bold 23px/1.4 KaiTi,serif; margin:.35em 0;}
.notes p {margin:.55em 0 .9em;}
.notes blockquote {margin:16px 0; padding-left:15px; border-left:2px solid #b38b73; color:#74624d;}
.notes a,.sheet-foot button { color:#80533e; text-decoration:underline; text-underline-offset:4px; }
.project-print { display:block; width:100%; max-height:235px; object-fit:contain; background:#eeeae2; margin:4px 0 15px; border:5px solid #fffdf7; box-shadow:0 1px 4px #49372d33; transform:rotate(-.6deg); }
.project + .project { margin-top:18px; border-top:1px dashed #c5baa6; padding-top:16px; }
.sheet-foot { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:20px; border-top:1px dashed #c1b398; padding-top:9px; }
.sheet-foot button { background:transparent; border:0; padding:8px 0; font:inherit; }
.honors { list-style:none; padding:0; margin:0 0 12px; }
.honors li {display:flex; gap:15px; padding:11px 0; border-bottom:1px dotted #c6b9a2;}
.honors li small {font:italic 16px Georgia;color:#986b52;}
.honors strong {font-size:16px; color:#69563c;}
.honors li p {margin:1px 0 0; font-size:14px;}
.map-title { text-align:center; padding:15px 0 1px; }
.map-title p {font-size:14px; margin: 5px 0; color:#736550;}
.trail-chart { position:relative; height:clamp(285px,45vh,375px); margin:8px -4px 4px; background:radial-gradient(ellipse at 37% 64%,#dae2cf66,transparent 48%),radial-gradient(ellipse at 76% 26%,#e4d8b966,transparent 32%); }
.trail-chart svg {position:absolute; inset:0; width:100%; height:100%;}
.north {position:absolute;right:6%;bottom:5%;text-align:center; font:italic 15px Georgia; color:#988771;}
.pin {position:absolute; transform:translate(-50%,-50%); background:transparent; border:0; display:flex; flex-direction:column; align-items:center; color:#493e31; font:14px KaiTi,serif; white-space:nowrap; padding:3px;}
.pin img {width:53px;height:44px;object-fit:contain;transition:transform .18s;}
.pin:hover img,.pin:focus-visible img {transform:translateY(-3px) rotate(-3deg);}
.pin b,.pin small {background:#fcfaf2db; padding:0 3px;}
.pin small {font-size:11px; color:#76654f;}
.wind-tree { transform-origin:50% 100%;transform-box:fill-box;animation:bough-sway 5.4s ease-in-out infinite alternate;animation-delay:var(--wind-delay);}
@keyframes bough-sway {from{transform:skewX(-.85deg)}to{transform:skewX(1.25deg)}}
.chimney-wisp { fill:none;stroke:#c9bdae;stroke-width:3.2;stroke-linecap:round;animation:chimney-rise 5.1s ease-out infinite;pointer-events:none;}
@keyframes chimney-rise {0%{opacity:0;transform:translate(0,6px) scale(.5)}18%{opacity:.66}100%{opacity:0;transform:translate(13px,-18px) scale(1.2)}}
@media(max-width:450px){#paper-scroll{margin:16px 9px;padding:6px 16px 15px}.chapter img{width:66px;height:65px;margin:10px 6px 0 0}.pin{font-size:13px}.pin img{height:37px}.honors li{gap:9px}}
@media(prefers-reduced-motion:reduce){.chimney-wisp{display:none}}
.site-filing {
  position: fixed;
  inset-inline: 0;
  bottom: max(5px, env(safe-area-inset-bottom));
  text-align: center;
  pointer-events: none;
}
.site-filing a {
  display: inline-block;
  padding: 4px 9px;
  border-radius: 3px;
  background: #fbfaf2ed;
  color: #574c3f;
  font: 12px/1.45 system-ui, sans-serif;
  text-underline-offset: 2px;
  pointer-events: auto;
}
