/* 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 { display:flex; justify-content:center; padding:12px 20px 18px; background:linear-gradient(transparent,#0b191ecc); }
#hutMenuButton { display:flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:10px 18px; border:1px solid #c5a57977; border-radius:30px; background:#102127e6; color:#e9d6b7; font:13px system-ui; box-shadow:0 4px 20px #0004; }
#hutMenuButton svg { width:19px; height:19px; flex-shrink:0; }
#hutMenuButton svg:last-child { width:16px; }
#hutMenu { width:min(520px,calc(100% - 24px)); max-height:calc(100dvh - 32px); margin:auto auto max(16px,env(safe-area-inset-bottom)); padding:22px; overflow:auto; border:1px solid #bda17b77; border-radius:22px; background:linear-gradient(145deg,#1a3036,#0e2027); color:#eee2cf; box-shadow:0 18px 80px #0008; }
#hutMenu::backdrop { background:#04101580; }
.hut-menu-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.hut-menu-heading p { margin:0 0 8px; font:9px system-ui; letter-spacing:.18em; color:#c6a97f; }
.hut-menu-heading h2 { margin:0; font:28px Georgia,serif; }
#closeHutMenu { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; border:1px solid #bca37e44; border-radius:50%; background:#102128; color:#d9c5a6; }
#closeHutMenu svg { width:20px; height:20px; }
.hut-menu-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.hut-menu-actions button { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; min-width:0; min-height:85px; padding:16px 12px; text-align:left; border:1px solid #bba17a44; border-radius:10px; background:#243b3e66; color:#eddfc9; }
.hut-menu-actions strong { display:block; font:18px Georgia,serif; }
.hut-menu-actions small { display:block; margin-top:7px; font:10px/1.45 system-ui; color:#b6c3be; }
.hut-menu-actions .hut-menu-resume { grid-column:1/-1; display:flex; flex-direction:row; align-items:center; justify-content:space-between; min-height:74px; background:#c7a17418; border-color:#c6a27488; }
.hut-menu-resume svg { width:24px; height:24px; color:#dfbb8d; }
#hutMenuButton:focus-visible,#hutMenu button:focus-visible { outline:2px solid #f1cc97; outline-offset:3px; }
@media(max-width:359px) { #hutMenu { padding:18px; } .hut-menu-heading h2 { font-size:25px; } .hut-menu-actions strong { font-size:16px; } }
#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; }
