/* Interactive places over local artwork, with real accessible buttons. */
#hutHome.hut-world { position:relative; isolation:isolate; width:100%; max-width:720px; margin:auto; padding:0; display:flex; flex-direction:column; background:linear-gradient(#07121855,transparent 30%,#07121833 60%,#071218f5),var(--hut-art) center 52%/cover; }
.hut-heading { padding:16px 22px 0; text-shadow:0 2px 12px #000; }
#hutHome .hut-heading h1 { margin:4px 0 8px; font:34px Georgia,serif; }
#hutHome .hut-heading p { font-size:12px; color:#dfddd1; margin:6px 0; }
.hut-scene { position:relative; flex:1; min-height:150px; }
.world-hotspot { position:absolute; width:46%; min-height:108px; border:0; border-radius:18px; background:transparent; color:#fff1db; text-align:center; display:flex; flex-direction:column; justify-content:end; align-items:center; gap:4px; padding:12px 4px; text-shadow:0 2px 6px #000,0 0 12px #000; }
.world-hotspot.counter { left:2%; top:34%; }
.world-hotspot.hearth { right:2%; top:27%; }
.world-marker { display:grid; place-items:center; width:38px; height:38px; border:1px solid #eac195; border-radius:50%; background:#17272bbb; color:#ffcea0; box-shadow:0 0 24px #efaa5355; font-size:26px; }
.world-hotspot strong { font:22px Georgia,serif; background:#102127bb; border-radius:8px; padding:4px 8px; }
.world-hotspot small { font-size:10px; background:#102127dd; padding:4px; border-radius:6px; }
.world-hotspot:hover .world-marker,.world-hotspot:focus-visible .world-marker { background:#bc8d62; color:#08191e; }
.hut-kit { padding:8px 16px 12px; background:linear-gradient(transparent,#0b191ef2 22%); }
.hut-kit > p { text-align:center; font-size:11px; color:#ceb699; margin:0 0 10px; }
.hut-kit .hut-actions { gap:6px; }
.hut-kit .hut-actions button { min-height:44px; background:#102127cc; border-color:#b9916455; font-size:12px; padding:8px 12px; }
.hut-kit .hut-actions span { font-size:10px; margin-top:2px; }
#workspace:has(.training-feature:not([hidden]) .adventure-landscape),
.training-feature:has(.adventure-landscape),
.training-feature:has(.adventure-landscape) #root,
.training-feature .app-shell:has(.adventure-landscape),
.training-feature .app-content:has(.adventure-landscape) { height:100%; min-height:0; padding:0; }
.training-feature .adventure-home:has(.adventure-landscape) { height:100%; display:grid; grid-template-rows:minmax(150px,1fr) auto auto; background:linear-gradient(#08181b22,#0b191ee0),var(--chapter-art) center/cover; }
.training-feature .adventure-home:has(.adventure-landscape) .adventure-landscape { height:auto; margin:0; background:none; overflow:visible; }
.training-feature .adventure-home:has(.adventure-landscape) .adventure-map-nodes { display:grid; grid-template-rows:repeat(var(--stop-count),minmax(0,1fr)); align-items:center; inset:58px 18px 18px; gap:8px; }
.training-feature .adventure-map-nodes::before { content:""; position:absolute; top:16px; bottom:16px; left:50%; border-left:2px dashed #dbb28588; transform:rotate(12deg); pointer-events:none; }
.training-feature .adventure-map-nodes .adventure-node { position:relative; display:flex; flex-direction:row; gap:10px; width:max-content; max-width:90%; min-height:48px; padding:8px 12px; border:1px solid #d9b18288; border-radius:30px; background:#10232aeb; box-shadow:0 6px 22px #0006; justify-self:start; text-align:left; }
.training-feature .adventure-map-nodes .adventure-node:nth-child(even) { justify-self:end; }
.training-feature .adventure-map-nodes .adventure-node b { font:16px Georgia,serif; margin:0; }
.training-feature .adventure-map-nodes .adventure-node > span { width:30px; height:30px; flex-shrink:0; font-size:12px; border:1px solid #d9b182; }
.training-feature .adventure-map-nodes .adventure-node.selected { border-color:#f6c998; background:#674c34ee; box-shadow:0 0 24px #c99a7633; }
.training-feature .adventure-home:has(.adventure-landscape) .adventure-welcome { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0 14px; padding:10px; background:#0e2026eb; border-radius:16px; }
.training-feature .adventure-welcome .adventure-primary,.training-feature .adventure-welcome .adventure-secondary,.training-feature .adventure-resume { grid-column:1/-1; }
.training-feature .adventure-home:has(.adventure-landscape) .adventure-secondary { margin:0; min-height:40px; font-size:12px; }
.training-feature .adventure-home:has(.adventure-landscape) .adventure-text { font-size:11px; min-height:32px; padding:5px; margin:0; }
.training-feature .adventure-home > .adventure-text { width:auto; margin:4px 18px!important; }
.training-feature .adventure-home:has(.adventure-landscape) > .adventure-signoff { display:none; }
@media(max-height:680px) { .hut-heading { padding-top:8px; } #hutHome .hut-heading h1 { font-size:28px; } .hut-kit { padding-bottom:6px; } .world-hotspot { top:12%!important; min-height:88px; } .training-feature .adventure-map-nodes .adventure-node { min-height:42px; padding:5px 10px; } .training-feature .adventure-home:has(.adventure-landscape) .adventure-map-nodes { inset:46px 14px 8px; gap:4px; } }
/* Future split lengths use the same component; four/five stages get two lanes. */
.training-feature .adventure-home:has(.adventure-landscape) .adventure-map-nodes:has(>button:nth-of-type(4)) { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr)); }
.training-feature .adventure-map-nodes:has(>button:nth-of-type(4)) .adventure-node { width:100%; max-width:100%; padding:7px; gap:5px; justify-self:stretch; }
.training-feature .adventure-map-nodes:has(>button:nth-of-type(4)) .adventure-node b { font-size:13px; }
