/* Connected scrollable skill scroll; dialogue remains separate from its speaker. */
#game .tree-scroll{overflow:auto;max-height:62dvh;min-height:360px;border:1px solid #9b8550;border-radius:12px;background:radial-gradient(ellipse at center,#263943,#101d29 75%);touch-action:pan-x pan-y;padding:30px 12px;overscroll-behavior:contain}
#game .talent-tree{position:relative;margin:auto;isolation:isolate}
#game .tree-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
#game .tree-links path{fill:none;stroke:#657378;stroke-width:2}
#game .tree-links path.unlocked{stroke:#edcc80;filter:drop-shadow(0 0 3px #b49245)}
#game button.talent-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;width:128px;min-width:0;height:116px;padding:0;border:0;background:none!important;box-shadow:none;color:#f3e6c7;overflow:visible;text-shadow:0 1px 3px #000}
#game .talent-node .node-ring{position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;border:2px solid #8a9595;background:#17262e;box-shadow:0 0 0 5px #23343bbd}
#game .talent-node .painted-icon{width:46px;height:46px;flex:none}
#game .talent-node.available .node-ring,#game .talent-node.learned .node-ring{border-color:#e9cf84}
#game .talent-node.learned .node-ring{box-shadow:0 0 0 5px #c6a45630,0 0 20px #c6a45677;background:#594c2d}
#game .talent-node.locked .painted-icon{opacity:.35;filter:grayscale(1)}
#game .node-lock{position:absolute;font-size:12px;bottom:0;right:0;color:#fff;background:#15242b;border-radius:50%;padding:3px}
#game .talent-node b{font-size:13px;line-height:1.25;color:#f5e9cb}#game .talent-node small{font-size:12px;color:#d7c89e}
#game .skill-popup-veil{position:fixed;inset:0;z-index:8;display:grid;place-items:center;background:#070e18bb;padding:20px}
#game .skill-popup{position:relative;width:min(460px,100%);max-height:calc(100dvh - 80px);overflow:auto;overscroll-behavior:contain;background:#f3e6c7;border:3px double #9b7547;border-radius:12px;box-shadow:0 20px 70px #0009;padding:20px;color:#39291e}
#game .skill-popup .manual-detail{padding:12px 0;background:none;border:0;min-height:0}
#game .skill-popup .skill-popup-close{position:absolute;right:8px;top:8px;width:40px;min-width:40px;padding:0;font-size:24px}
#game .skill-popup h3{padding-right:30px}#game .skill-popup p,#game .skill-popup small{color:#503d2a}
#game #panel.npc-dialogue-panel{top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%);max-height:calc(100dvh - 120px);width:min(720px,94vw);overflow:auto}
#game #panel.npc-dialogue-panel .panel-content{max-height:none;overflow:visible}
#game #exitReplay{position:absolute;z-index:13;right:16px;top:calc(env(safe-area-inset-top,0px) + 94px);font-size:13px;min-height:40px;padding:8px 14px}
#game #sceneLoading{position:fixed;inset:0;transform:none;z-index:90;max-width:none;width:100%;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:30px;border:0;border-radius:0;background:linear-gradient(#101421cc,#101421e8),url('./assets/world-rift-v31.webp') center/cover;color:#f4e5c4}
#game #sceneLoading.hidden{display:none}#game #sceneLoading h2{font-size:30px;color:#f4e5c4;margin:0}#game #sceneLoading p{color:#e0d7c4;max-width:440px}#game #sceneLoading small{color:#dfc587;letter-spacing:.18em}
#game .loading-crest{display:grid;place-items:center;width:100px;height:100px;font-size:60px;border:1px solid #b9a066;border-radius:50%;animation:waylight 2s ease-in-out infinite}
#game #sceneLoadProgress{width:min(380px,80vw);height:7px;appearance:none;border:0;background:#48505a;border-radius:5px;overflow:hidden}
#sceneLoadProgress::-webkit-progress-bar{background:#48505a}#sceneLoadProgress::-webkit-progress-value{background:#e2c479;transition:width .2s}#sceneLoadProgress::-moz-progress-bar{background:#e2c479}
@keyframes waylight{50%{box-shadow:0 0 44px #d6b57055;text-shadow:0 0 22px #eed696;opacity:.7}}
@media(prefers-reduced-motion:reduce){#game .loading-crest{animation:none}}
@media(orientation:landscape) and (max-height:600px){#game .tree-scroll{min-height:220px;max-height:55dvh}#game #panel.npc-dialogue-panel{max-height:calc(100dvh - 70px)}#game .npc-dialogue-stage{padding-top:0}#game .loading-crest{width:60px;height:60px;font-size:38px}#game #sceneLoading{gap:10px}}
