:root{--forest-edge:clamp(22px,4.7vw,84px);--ivory:#fff8e4;--glass:rgba(17,30,23,.56)}
body{background:#17251c}
#forest{position:relative;isolation:isolate;min-height:100vh;min-height:100svh;overflow:hidden;color:var(--ivory);display:flex;flex-direction:column;justify-content:flex-end}
.forest-view,.forest-shade,.forest-layer,.forest-light{position:absolute;inset:0}
.forest-view{z-index:-3;overflow:hidden;touch-action:pan-y;cursor:grab;background:#263827}
.forest-view:active{cursor:grabbing}
.forest-view:focus-visible{outline:2px solid #fff2b2;outline-offset:-7px}
.forest-layer{opacity:0;transition:opacity .85s ease;pointer-events:none}
.forest-layer.visible{opacity:1}
.forest-layer.receding{transform:scale(1.085) translateY(-.8%);transition:opacity .85s ease,transform .9s ease-out}
.forest-layer img{height:100%;width:100%;object-fit:cover;object-position:var(--crop,52%) 52%;display:block;user-select:none;transform:scale(var(--zoom,1.09)) translate(var(--pan,0%),var(--pitch,0%));transition:transform .3s ease-out}
.forest-view.dragging img{transition:none}
.forest-light{pointer-events:none;overflow:hidden}
.forest-mote{position:absolute;bottom:16%;width:3px;height:3px;border-radius:100%;background:#fff5ca;filter:blur(.55px);opacity:0;box-shadow:0 0 7px 1px #ffeab061;animation:forest-mote var(--period,15s) var(--delay,0s) ease-in-out infinite}
@keyframes forest-mote{0%,100%{opacity:0;transform:translate(0,0)}30%{opacity:.55}70%{opacity:.25}95%{opacity:0;transform:translate(32px,-13vh)}}
.forest-shade{z-index:-2;pointer-events:none;background:linear-gradient(180deg,#0b1a14a3 0%,#14201944 14%,transparent 29%,transparent 52%,#101a1463 74%,#0b1813d6 100%),linear-gradient(90deg,#121e182e,transparent 47%)}
.forest-header{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:clamp(18px,3.3vh,35px) var(--forest-edge);background:none;border:0}
.forest-brand{display:inline-flex;align-items:center;gap:13px;color:#fff9e7;text-shadow:0 1px 8px #142016b0}
.forest-brand>.ico{width:31px;height:36px;stroke-width:1.2}
.forest-brand small,.forest-brand strong{display:block}
.forest-brand small{font:600 10px/1.45 var(--sans);letter-spacing:.10em;margin-bottom:2px}
.forest-brand strong{font:600 23px/1.18 var(--serif);letter-spacing:-.065em}
.forest-nav,.forest-tools,.forest-look,.forest-actions{display:flex;align-items:center}
.forest-nav{gap:8px}
.forest-nav button,.forest-toolbar button,.forest-look{font-size:13px;color:var(--ivory);font-weight:600}
.forest-nav button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--glass);border:1px solid #f5efcd54;border-radius:30px;min-height:40px;padding:5px 14px;backdrop-filter:blur(12px)}
.forest-nav .profile{margin:0;padding:4px 13px 4px 5px;max-width:150px}
.forest-nav .profile #profileName{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.forest-nav .mini-face{background:#ebe8cd}
.forest-caption{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:120px var(--forest-edge) clamp(21px,4.8vh,54px);margin-top:auto;pointer-events:none}
.forest-copy{min-width:0;text-shadow:0 2px 12px #0e1c14b3}
.forest-copy h1{font:500 clamp(44px,5.6vw,90px)/1.13 var(--serif);letter-spacing:-.09em;margin:0}
.forest-copy h1:focus{outline:0}
.forest-copy p{font:500 clamp(14px,1.12vw,18px)/1.6 var(--sans);margin:13px 0 0;color:#fff7e4;word-break:keep-all}
.forest-actions{gap:9px;flex-wrap:wrap;justify-content:flex-end;pointer-events:auto}
.forest-actions button{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 20px;border-radius:28px;font-size:14px;font-weight:650;letter-spacing:-.045em;background:var(--glass);border:1px solid #fff3c875;color:#fff9e8;backdrop-filter:blur(12px)}
.forest-actions .forest-primary{background:#f5eacf;color:#223d2d;border-color:#fff0c8}
.forest-actions .ico{width:18px;height:18px}
.forest-actions button:hover,.forest-nav button:hover,.forest-toolbar button:hover{filter:brightness(1.12);border-color:#fff5d9}
.forest-actions.route-choices{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:7px;max-width:400px}
.forest-actions.route-choices button{border-radius:9px;min-height:40px;padding:9px 15px;text-align:left}
.forest-toolbar{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #f6edc947;margin:0 var(--forest-edge);padding:13px 0 max(16px,env(safe-area-inset-bottom));color:#f6f2df}
.forest-tools{gap:22px}
.forest-tools button,.forest-look button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:37px;padding:4px 0}
.forest-tools b{font-weight:500}
.wave{display:inline-flex;height:17px;align-items:center;gap:2px}
.wave i{width:2px;height:6px;border-radius:2px;background:currentColor}
.wave i:nth-child(2){height:14px}.wave i:nth-child(3){height:10px}
[aria-pressed="true"]>.wave i{animation:woods-wave .8s ease alternate infinite}
[aria-pressed="true"]>.wave i:nth-child(even){animation-delay:-.4s}
@keyframes woods-wave{to{transform:scaleY(.45)}}
.live-dot{width:7px;height:7px;border-radius:100%;background:#b5cc94;box-shadow:0 0 0 3px #9bb88324}
.forest-look{gap:10px;font-weight:500}.forest-look button{font:26px/1 Georgia;color:#fff4d6;width:35px}.forest-look span{font-size:12px}
.forest-look #quietView{margin-right:10px;border-right:1px solid #efe9c958;border-radius:0;width:40px;padding-right:12px}.forest-look #quietView .ico{width:17px}
#leaveQuiet{position:absolute;right:var(--forest-edge);bottom:max(20px,env(safe-area-inset-bottom));font-size:12px;color:#fff8e6;border-radius:22px;border:1px solid #fff4d465;background:#1a2a2099;padding:9px 14px;backdrop-filter:blur(8px)}
.on-trail{position:absolute;right:var(--forest-edge);top:clamp(124px,32svh,320px);max-width:66%;padding:9px 14px;border:1px solid #fff0bd85;border-radius:24px;background:#203525ca;color:#fff5dc;font-size:13px;backdrop-filter:blur(7px)}
.on-trail::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#c3d69b;margin-right:8px;vertical-align:middle}
.scenery-only .forest-header,.scenery-only .forest-caption,.scenery-only .forest-toolbar,.scenery-only #carryBar,.scenery-only .on-trail{display:none}
.scenery-only .forest-shade{opacity:0}
#forest .carry-bar{position:absolute;top:98px;left:var(--forest-edge);color:#fff7dd;background:#19291edb;border:1px solid #f6eec750;border-radius:12px;padding:8px 13px;gap:10px;max-width:min(420px,calc(100% - 44px));backdrop-filter:blur(10px)}
#forest .carry-bar>svg,#forest .carry-bar small,#forest .carry-bar button{color:#eee4bb}#forest .carry-bar b{font-size:13px}
.forest-sheet{border:0;border-radius:20px;background:#f7f6ee;color:#2c4434;width:min(620px,calc(100% - 28px));max-height:86vh;max-height:86svh;padding:0;overflow:auto;box-shadow:0 12px 80px #09160e77}
.forest-sheet::backdrop,#room::backdrop{background:#10201966;backdrop-filter:blur(3px)}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#f6f4e8;position:sticky;top:0;z-index:5;border-bottom:1px solid #deded0}
.sheet-head h2{margin:0;font:600 22px var(--serif);letter-spacing:-.05em}.sheet-head button{width:38px;height:38px}
.forest-sheet .map-card{border:0;border-radius:0}.guide-content{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px}
.guide-content .directory{padding:14px}.guide-content h3{font-size:16px;margin:2px 0 6px}
.guide-content .place{padding:8px 0}.guide-content .place small{font-size:11px}.guide-content .tile{width:32px;height:35px}
.guide-content .question,.guide-content .sound-credits{grid-column:1/-1}.guide-content .question h2{font-size:18px}
.sound-credits{font-size:12px;color:#576552;line-height:1.6}.sound-credits summary{cursor:pointer}.sound-credits a{text-decoration:underline}.sound-credits p{margin:6px 0}
.meeting-body{padding:18px 22px}.meeting-body p{margin:0 0 14px;line-height:1.7}.meeting-body .nearby{margin:0 0 16px;padding:0 5px;background:transparent}
#room[data-view="clearing"],#room[data-view="reader"],#room[data-view="cafe"]{box-shadow:0 12px 80px #0b1b1299}
.cafe-hero,.landscape.indoors{background-image:url('/forest/cafe.webp')}
.landscape.stream{background-image:url('/forest/bench.webp')}.landscape.garden{background-image:url('/forest/trail.webp')}.landscape.lantern{background-image:url('/forest/gallery.webp')}.landscape.free{background-image:url('/forest/fork.webp')}
.landscape.stream,.landscape.garden,.landscape.lantern,.landscape.free{background-size:cover;background-position:center 55%}
.forest-nav button:focus-visible,.forest-toolbar button:focus-visible,.forest-actions button:focus-visible,.forest-brand:focus-visible{outline:3px solid #fff2bd;outline-offset:4px}
@media(max-width:720px){
  .forest-header{padding-top:max(17px,env(safe-area-inset-top))}.forest-brand{gap:8px}.forest-brand>.ico{width:24px}.forest-brand small{font-size:8px;letter-spacing:.02em}.forest-brand strong{font-size:19px}
  .forest-nav{gap:5px}.forest-nav button{font-size:12px;padding:4px 9px;gap:5px;min-height:36px}.forest-nav .profile{padding:3px;border-radius:50%}.forest-nav .profile #profileName{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.forest-nav .mini-face{width:28px;height:28px}
  .forest-caption{align-items:flex-start;flex-direction:column;gap:18px;padding-bottom:22px}.forest-copy h1{font-size:clamp(42px,9.8vw,62px)}.forest-copy p{margin-top:7px;font-size:14px}
  .forest-actions{justify-content:flex-start}.forest-actions button{min-height:42px;padding:8px 16px;font-size:13px}
  .forest-actions.route-choices{width:min(100%,390px)}.forest-tools{gap:16px}.forest-look{gap:3px}.forest-look button{width:28px}.forest-toolbar{padding-top:6px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  #forest .carry-bar{top:78px}.guide-content{gap:8px}.guide-content .directory{padding:10px}.guide-content #places{display:block}
}
@media(max-width:380px){:root{--forest-edge:15px}.forest-nav button{padding:3px 7px}.forest-tools{gap:12px}.forest-toolbar button{font-size:12px}}
@media(max-height:520px) and (min-width:600px){.forest-header{padding-top:10px}.forest-copy h1{font-size:40px}.forest-caption{padding-bottom:12px}.forest-toolbar{padding:2px 0}.forest-copy p{margin-top:5px}#forest .carry-bar{top:62px}}
@media(prefers-reduced-motion:reduce){.forest-mote{display:none}.forest-layer img{transition:none;transform:scale(1.04) translate(var(--pan,0%),var(--pitch,0%))}}
