/* Shared game typography and gold/black materials; campaign-only scope. */
#stage .st-root{--st-gold:#edcf91;--st-text:#eee8dc;--st-dim:#c2b8a5;--st-ground:#141719;position:relative;display:flex;flex-direction:column;min-height:0;height:calc(100% - 100px);margin-top:100px;color:var(--st-text);background:var(--st-ground);font:400 18px/1.5 var(--mg-font,'AD Jakarta',sans-serif);isolation:isolate}
#stage .st-root *{box-sizing:border-box}
#stage .st-base{display:flex;flex-direction:column;flex:1;min-height:0}
#stage .st-root ::selection{color:#151719;background:#edcf91}
#stage .st-root ::-webkit-scrollbar{width:8px;height:8px}
#stage .st-root ::-webkit-scrollbar-thumb{background:#8a7550;border-radius:6px}
#stage .st-root ::-webkit-scrollbar-track{background:#202325}
#stage .st-root h1,#stage .st-root h2,#stage .st-root h3{font-family:var(--mg-font,'AD Jakarta',sans-serif);font-weight:600;line-height:1.3;margin:0;color:#f0dfbb;letter-spacing:0}
#stage .st-root h1{font-size:45px}#stage .st-root h2{font-size:32px}#stage .st-root h3{font-size:23px}
#stage .st-root p{margin:0}#stage .st-root svg{height:24px;width:24px;flex:none;vertical-align:middle}
#stage .st-root button{font:500 17px/1.4 var(--mg-font,'AD Jakarta',sans-serif);letter-spacing:0;text-transform:none;cursor:pointer;color:#e8dcc7;background:#242628;border:1px solid #6f6554;border-radius:8px;padding:10px 16px;min-height:48px;box-shadow:none;transition:background .16s,border-color .16s}
#stage .st-root button:hover:not(:disabled){background:#393730;border-color:#e5c98d;color:#fff4dc}
#stage .st-root button:focus-visible{outline:3px solid #f5d99c;outline-offset:3px}
#stage .st-root button:disabled{cursor:default;color:#a6a195;background:#232526;border-color:#464744;opacity:1}
#stage .st-root button.on{color:#f6e1b7;border-color:#cfaf70;background:#353025}
/* One continuous world: presentation overlays never resize the map. */
#stage .st-expedition{position:relative;min-height:0;flex:1;overflow:hidden;background:#162329}
#stage .st-map-viewport{position:absolute;inset:0;overflow:auto;touch-action:pan-x pan-y;overscroll-behavior:contain;scrollbar-width:thin;cursor:grab;background:#253b41}
#stage .st-map-viewport.dragging{cursor:grabbing;user-select:none}
#stage .st-world{position:relative;margin:auto;flex:none;background:#263f44}
#stage .st-map-art{display:block;width:100%;height:100%;pointer-events:none;user-select:none}
#stage .st-world::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 15px 35px #111b2340,inset 0 -15px 35px #111b2340;z-index:1}
#stage .st-paths{position:absolute;inset:0;width:100%!important;height:100%!important;pointer-events:none;z-index:2;overflow:visible}
#stage .st-paths path{fill:none;stroke:#dbcda9;stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 1px 2px #071b22);opacity:.8}
#stage .st-paths path.planned{stroke:#b6bcae;opacity:.45;stroke-width:1.5;stroke-dasharray:4 5}
#stage .st-paths path.next{stroke:#ffe7af;opacity:1;stroke-width:3}
#stage .st-paths path.done{stroke:#a5e1c0;opacity:1;stroke-width:3}
#stage .st-root .st-node{position:absolute;transform:translate(-50%,-50%);width:64px;height:64px;min-height:64px;padding:0;border:0;border-radius:50%;background:transparent;z-index:4;display:grid;place-items:center;box-shadow:none}
#stage .st-root .st-node:hover:not(:disabled){background:transparent;border:0}
#stage .st-node-core{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#26363c;border:2px solid #c7be9b;color:#f0e0b8;box-shadow:0 2px 6px #07131ac9;transition:transform .16s,background .16s}
#stage .st-node-core>svg{width:14px;height:14px}
#stage .st-node.event .st-node-core{width:17px;height:17px;border-width:2px;box-shadow:0 1px 5px #07131a}
#stage .st-node.planned .st-node-core{width:18px;height:18px;background:#253b41;border-color:#a1ac9b;color:#c3cbb7;opacity:.8}
#stage .st-node.planned .st-node-core>svg{width:10px;height:10px}
#stage .st-node.opened .st-node-core{background:#295f4c;border-color:#b6e4c5;color:#f5ffdb}
#stage .st-node.available .st-node-core{background:#554627;border-color:#ffe3a0;box-shadow:0 0 0 5px #ffda7626,0 2px 6px #07131ac9}
#stage .st-node.selected .st-node-core{transform:scale(1.25);background:#edce8b;color:#17242a;border-color:#fff4cc;box-shadow:0 0 0 6px #151e2580}
#stage .st-node:hover .st-node-core{transform:scale(1.25)}
#stage .st-world.overview .st-node-core{width:21px;height:21px}
#stage .st-world.overview .st-node.planned .st-node-core{width:13px;height:13px}
#stage .st-world.overview .st-node.planned .st-node-core>svg{display:none}
#stage .st-world.overview .st-node.event .st-node-core{width:13px;height:13px}
#stage .st-root .st-region{position:absolute;transform:translate(-50%,-50%);z-index:5;display:flex;flex-direction:column;align-items:center;min-height:64px;min-width:200px;width:max-content;max-width:360px;padding:7px 18px;border:0;border-radius:3px;background:#14292de8;box-shadow:0 4px 18px #12212b40;white-space:nowrap}
#stage .st-root .st-node.selected{z-index:6}
#stage .st-root .st-region:hover{background:#1e353b}
#stage .st-region>span{font:500 12px/1.4 var(--mg-font,'AD Jakarta',sans-serif);letter-spacing:.18em;color:#d9caab}
#stage .st-region b{font:600 22px/1.4 var(--mg-font,'AD Jakarta',sans-serif);color:#f2e4c4}
#stage .st-region small{font-size:12px;color:#d0cbbd}
#stage .st-walker{position:absolute;z-index:7;width:44px;height:50px;transform:translate(-50%,-115%);pointer-events:none;filter:drop-shadow(0 4px 5px #080b11)}
#stage .st-walker img{width:44px;height:44px;border-radius:50%;border:2px solid #ffe4a5;object-fit:cover;background:#24282b}
#stage .st-walker::after{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#ffe7b3;margin:3px auto}
#stage .st-journey-hud{position:absolute;z-index:9;left:24px;top:30px;width:212px;background:linear-gradient(#162129f5,#162129f5);border:1px solid #b59d67;padding:22px 18px 24px;text-align:center;box-shadow:0 8px 35px #0a17294d}
#stage .st-kicker{font-size:10px;letter-spacing:.1em;color:#d4bd8e;white-space:nowrap}
#stage .st-journey-hud h1{font-size:36px;white-space:nowrap;color:#f0dcad;line-height:1.4}
#stage .st-journey-hud h1 i{font-size:25px;font-weight:400;font-style:italic}
#stage .st-lang-ru .st-journey-hud h1,#stage .st-lang-en .st-journey-hud h1{font-size:29px}
#stage .st-hud-rule{height:1px;background:linear-gradient(90deg,transparent,#9d8755,transparent);margin:14px 0 22px}
#stage .st-book-number{font-size:12px;letter-spacing:.18em;color:#d6be8c}
#stage .st-journey-hud h2{font-size:30px;margin:8px 0 12px;line-height:1.35;color:#fff1d5}
#stage .st-journey-hud p{font-size:14px;color:#d1c6b1;line-height:1.8}
#stage .st-book-nav{display:flex;align-items:center;justify-content:space-between;margin:18px 0}
#stage .st-root .st-book-nav button{min-height:48px;width:48px;border:1px solid #66634f;border-radius:4px;background:#273035;padding:0;font-size:28px}
#stage .st-book-nav>span{font-size:15px;color:#d3c7af}
#stage .st-root .st-continue{width:100%;min-height:55px;display:flex;align-items:center;justify-content:center;gap:8px;border-color:#c2a770;border-radius:3px;background:#363329;font-size:14px;color:#f7e4bb;padding:8px 5px}
#stage .st-continue svg{width:18px;height:18px}
#stage .st-journey-hud .st-hud-foot{font-size:11px;margin-top:20px;color:#b7b9b4}
#stage .st-map-tools{position:absolute;z-index:9;right:24px;top:24px;display:flex;gap:5px;align-items:center;background:#18242cec;border:1px solid #9e8d67;padding:5px;box-shadow:0 6px 18px #06132340}
#stage .st-root .st-map-tools button{min-height:46px;border:0;border-radius:3px;background:transparent;padding:8px 14px;font-size:16px}
#stage .st-map-tools button[data-st-zoom]{font-size:28px;width:48px;padding:0}
#stage .st-map-hint{position:absolute;z-index:8;top:30px;left:50%;transform:translateX(-50%);pointer-events:none;background:#152731e6;color:#f0e7d1;font-size:13px;line-height:1.5;padding:8px 14px!important;border-radius:3px}
#stage .st-detail{position:absolute;z-index:10;right:24px;top:105px;width:336px;max-height:calc(100% - 240px);display:flex;flex-direction:column;background:#17222af7;border:1px solid #ad9665;box-shadow:0 8px 35px #071b2459;padding:16px 18px 18px}
#stage .st-detail-heading{display:flex;gap:8px;align-items:center;justify-content:space-between}
#stage .st-episode{font-size:13px;color:#dac597}
#stage .st-root .st-detail-heading button{width:40px;height:40px;min-height:40px;padding:0;border:0;background:transparent}
#stage .st-detail-scroll{overflow:auto;min-height:0;padding:0 2px 12px}
#stage .st-detail h2{font-size:34px;margin:6px 0 12px;line-height:1.3}
#stage .st-help{font-size:14px;line-height:1.8;color:#d2cbbb;margin:0 0 16px!important}
#stage .st-root .st-require{display:flex;align-items:center;justify-content:space-between;width:100%;gap:5px;min-height:52px;border-radius:4px;border:1px solid #58615c;background:#25343a;margin-bottom:7px;padding:8px 10px;font-size:14px;text-align:left}
#stage .st-require>span:last-child{display:flex;align-items:center;gap:7px;white-space:nowrap}
#stage .st-require>span:last-child svg{width:16px;height:16px}
#stage .st-root .st-require.enough{background:#223d34;border-color:#71917b}#stage .st-require.enough>span:last-child{color:#b7edcb}
#stage .st-token{display:inline-flex;align-items:center;gap:7px;min-width:0}
#stage .st-token img{width:30px;height:30px;object-fit:contain;flex:none}
#stage .st-token-emblem{display:grid;place-items:center;width:38px;height:42px;flex:none;background:linear-gradient(145deg,var(--token-top),var(--token-bottom));mask:url(tokens/token_mask.png) center/contain no-repeat;-webkit-mask:url(tokens/token_mask.png) center/contain no-repeat;mask-mode:luminance}
#stage .st-token-emblem img{width:25px;height:25px;object-fit:contain}
#stage .st-total{font-size:13px;color:#d0c4ac;margin:12px 0!important;line-height:1.9}
#stage .st-total b{color:#f7e1b5}
#stage .st-prize{display:flex;gap:12px;align-items:center;border-top:1px solid #71613e;padding:15px 0 4px;color:#e6dcad}
#stage .st-prize>svg{width:28px;height:28px}#stage .st-prize b{display:block;font-size:16px}#stage .st-prize span{display:block;font-size:12px;color:#d0c8b6;line-height:1.7;margin-top:4px}
#stage .st-error{color:#ffc2a9;font-size:14px;line-height:1.7}
#stage .st-error:empty{display:none}
#stage .st-root .st-primary{background:linear-gradient(#f3d99f,#cba762);border-color:#f2dba3;border-radius:3px;color:#1c2021;font-weight:700;min-height:58px;display:flex;align-items:center;justify-content:center;gap:8px;flex:none}
#stage .st-root .st-primary:disabled{background:#343b3b;color:#c8c6b9;border-color:#6c7165;box-shadow:none}
#stage .st-branches{padding:12px 0 18px;border-top:1px solid #5d614f}
#stage .st-branches>b{display:block;font-size:14px;font-weight:500;color:#f1dcae;margin-bottom:8px}
#stage .st-root .st-branches button{width:100%;min-height:48px;display:flex;align-items:center;gap:8px;background:transparent;border:0;padding:7px 0;text-align:left;font-size:13px;line-height:1.6}
#stage .st-branches svg{width:17px;height:17px;color:#dcc897}
#stage .st-inventory{position:absolute;z-index:12;left:50%;transform:translateX(-50%);bottom:20px;width:max-content;max-width:calc(100% - 90px);height:94px;display:flex;align-items:center;gap:16px;background:#18242cf5;border:1px solid #a28c5e;padding:8px 14px 8px 22px;box-shadow:0 8px 35px #071b2459}
#stage .st-inventory-label{min-width:146px;border-right:1px solid #66634f;padding-right:18px}
#stage .st-inventory-label b{display:block;font:600 23px/1.4 var(--mg-font,'AD Jakarta',sans-serif);letter-spacing:.05em;color:#e5d2ab}
#stage .st-inventory-label span{font-size:11px;color:#c6c7bd;white-space:nowrap}
#stage .st-token-scroll{display:flex;gap:4px;overflow:auto;min-width:0;padding:3px}
#stage .st-root .st-bag-token{position:relative;display:grid;place-items:center;flex:none;width:51px;height:64px;min-height:64px;padding:0;border:0;border-radius:0;background:transparent}
#stage .st-root .st-bag-token:hover{background:#3e443d}
#stage .st-root .st-bag-token.on{background:#665a3d}
#stage .st-bag-token img{width:44px;height:49px;object-fit:contain;filter:drop-shadow(0 2px 2px #071b24)}
#stage .st-bag-token .st-token-emblem{width:44px;height:49px}
#stage .st-bag-token .st-token-emblem img{width:28px;height:28px;filter:none}
#stage .st-bag-token b{position:absolute;right:-1px;top:0;min-width:23px;height:23px;padding:2px 4px;border-radius:50%;background:#3c4c4e;color:#fff0ca;border:1px solid #9c9e81;font:600 17px/1 var(--mg-font,'AD Jakarta',sans-serif);text-align:center}
#stage .st-root .st-inventory-help{width:44px;min-height:48px;padding:0;background:transparent;border:0;font-size:22px;color:#d8cfb8}
#stage .st-token-popup{position:absolute;z-index:13;left:50%;transform:translateX(-50%);bottom:128px;width:880px;max-width:calc(100% - 540px);background:#172730f7;border:1px solid #b4a072;box-shadow:0 10px 40px #071b2480;padding:14px 20px}
#stage .st-token-popup header{display:flex;align-items:center;gap:14px;font-size:14px;color:#e3d9c2}
#stage .st-token-popup header>.st-token{font-weight:600;color:#f0dfb7}
#stage .st-token-popup header>button{margin-left:auto;width:40px;min-height:40px;padding:0;background:transparent;border:0}
#stage .st-token-heroes{display:flex;gap:10px;flex-wrap:wrap;max-height:164px;overflow:auto;padding:15px 4px 8px}
#stage .st-token-heroes>span{position:relative;display:block;width:45px;height:53px}
#stage .st-token-heroes img{width:45px;height:45px;object-fit:cover;border-radius:50%;border:1px solid #aba17d}
#stage .st-token-heroes b{position:absolute;right:-7px;bottom:0;font:600 14px/1 var(--mg-font,'AD Jakarta',sans-serif);color:#f3dfac;background:#273c42;padding:3px 4px;border-radius:3px}
#stage .st-token-popup p{font-size:12px;color:#c6c7b8;margin-top:10px!important}

#stage .st-hero-book{position:absolute;inset:0;z-index:20;background:#151b1e;display:flex;flex-direction:column;padding:28px 36px;min-height:0}
#stage .st-hero-book header{display:flex;justify-content:space-between;align-items:center;gap:20px}#stage .st-hero-book header p{color:#c8bda8;font-size:17px;margin-top:6px}
#stage .st-hero-tools{display:flex;gap:18px;align-items:center;margin:22px 0}#stage .st-hero-tools input{width:420px;min-height:56px;padding:12px 16px;font:400 20px var(--mg-font,'AD Jakarta',sans-serif);color:#eee5d5;background:#252b2e;border:1px solid #96866a;border-radius:8px;outline-color:#edcf91}#stage .st-hero-tools input::placeholder{color:#beb6a8}
#stage .st-hero-grid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-content:start;padding:4px}
#stage .st-hero{display:flex;align-items:center;gap:15px;background:#22292c;border-radius:10px;padding:14px;min-width:0}#stage .st-hero>img{width:72px;height:88px;object-fit:cover;border-radius:6px}#stage .st-hero>div{min-width:0}#stage .st-hero b{font:600 25px/1.4 var(--mg-font,'AD Jakarta',sans-serif);color:#f0ddb8}#stage .st-hero>div>div{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}#stage .st-hero .st-token{font-size:14px;gap:5px}#stage .st-hero .st-token img{width:26px;height:26px}#stage .st-hero-note{font-size:15px;color:#c8bda8;padding-top:20px;line-height:1.7}
#stage .st-reader{display:flex;flex-direction:column;min-height:0;flex:1;background:#14191b}
#stage .st-reader>header{display:flex;align-items:center;gap:28px;justify-content:space-between;flex:none;padding:20px 32px;border-bottom:1px solid #544a38;background:#1b2022}
#stage .st-reader>header>div:nth-child(2){text-align:center}#stage .st-reader>header span{font-size:15px;color:#c7bba4}
#stage .st-font-tools{display:flex;gap:10px;align-items:center}#stage .st-font-tools output{min-width:30px;text-align:center}
#stage .st-reading{flex:1;min-height:0;overflow:auto;padding:40px 150px 65px;overscroll-behavior:contain;scrollbar-gutter:stable}
#stage .st-reading article{max-width:70ch;margin:auto;color:#e7e1d7;font-size:var(--st-reading-size,22px);line-height:1.95;overflow-wrap:anywhere}
#stage .st-reading article p{margin:0 0 1.15em}#stage .st-reading article h2{font-size:38px;margin:0 0 18px}#stage .st-reading article h3{font-size:30px;margin:18px 0 28px}#stage .st-reading article hr{border:0;border-top:1px solid #6c5a3d;width:100px;margin:42px auto}#stage .st-reading blockquote{margin:24px 0;padding:24px 30px;background:#24292b;border:1px solid #5a5142;border-radius:8px;font-size:.95em}#stage .st-reading blockquote p:last-child{margin-bottom:0}
#stage .st-prose-table{overflow-x:auto}#stage .st-reading table{border-collapse:collapse;margin:12px 0;width:100%;font-size:.85em}#stage .st-reading td,#stage .st-reading th{padding:10px 14px;text-align:left;border:1px solid #696052}
#stage .st-reader footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex:none;padding:12px 32px;background:#1b2022;border-top:1px solid #4d4436;font-size:15px;color:#c5baa5}
#stage .st-reward-toast{position:absolute;right:30px;bottom:24px;z-index:30;max-width:480px;display:flex;gap:18px;align-items:center;padding:20px 24px;background:#25372b;border:1px solid #b8d990;border-radius:12px;box-shadow:0 10px 28px #080b1199;color:#e0f4bf}#stage .st-reward-toast>svg{width:36px;height:36px}#stage .st-reward-toast b{display:block;font-size:20px}#stage .st-reward-toast span{display:block;font-size:16px}#stage .st-reward-toast button{padding:5px 10px;min-height:44px}
#stage .st-promo{position:relative;display:flex;align-items:center;gap:16px;overflow:hidden;min-height:154px;width:100%;padding:18px!important;text-align:left!important;background:#1b2325!important;cursor:pointer;border:1px solid #89774c!important;border-radius:12px!important;color:#f3dfb5;font-family:var(--mg-font,'AD Jakarta',sans-serif);flex:none}
#stage .st-promo-art{position:absolute;inset:0;background:linear-gradient(90deg,#172124ef 15%,#172124b5 58%,#17212410),url(journey-map.webp) 10% 65%/cover;pointer-events:none}
#stage .st-promo-copy{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
#stage .st-promo-copy>b{font:600 32px/1.3 var(--mg-font,'AD Jakarta',sans-serif);color:#f1d59e}#stage .st-promo-copy>span{font-size:14px;color:#e3d6bd}#stage .st-promo-copy>strong{font-size:14px;font-weight:500;color:#d4c8ae}#stage .st-promo-copy .st-promo-link{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:14px;color:#f5deaf}#stage .st-promo svg{width:18px;height:18px}
html.touch #stage .st-root{font-size:20px}
html.touch #stage .st-root button{min-height:64px;font-size:20px}
html.touch #stage .st-journey-hud{width:252px;padding:20px}
html.touch #stage .st-journey-hud .st-kicker{font-size:20px;white-space:normal;letter-spacing:0}
html.touch #stage .st-root small,html.touch #stage .st-root p,html.touch #stage .st-root .st-book-number,html.touch #stage .st-root .st-book-nav>span,html.touch #stage .st-root .st-episode,html.touch #stage .st-root .st-total,html.touch #stage .st-root .st-help,html.touch #stage .st-root .st-prize span,html.touch #stage .st-root .st-prize b,html.touch #stage .st-root .st-token,html.touch #stage .st-root .st-branches>b,html.touch #stage .st-root .st-inventory-label span,html.touch #stage .st-root .st-region>span,html.touch #stage .st-root .st-hero-note,html.touch #stage .st-root .st-hero-book header p,html.touch #stage .st-root .st-reader header span,html.touch #stage .st-root .st-reader footer,html.touch #stage .st-root .st-reward-toast span,html.touch #stage .st-root .st-reading table{font-size:20px}
html.touch #stage .st-map-hint{top:32px}
html.touch #stage .st-map-tools button{min-width:64px}
html.touch #stage .st-detail-heading button,html.touch #stage .st-token-popup header>button,html.touch #stage .st-inventory-help,html.touch #stage .st-book-nav button,html.touch #stage .st-reward-toast button{width:64px;min-width:64px;min-height:64px}
html.touch #stage .st-detail{width:400px;top:118px;max-height:calc(100% - 260px)}
html.touch #stage .st-detail h2{font-size:36px}
html.touch #stage .st-inventory{height:110px;gap:12px;max-width:calc(100% - 100px);bottom:18px}
html.touch #stage .st-inventory-label{min-width:200px}
html.touch #stage .st-root .st-bag-token{width:64px;height:76px}
html.touch #stage .st-bag-token img{width:50px;height:56px}
html.touch #stage .st-bag-token .st-token-emblem{width:50px;height:56px}
html.touch #stage .st-bag-token .st-token-emblem img{width:32px;height:32px}
html.touch #stage .st-bag-token b{font-size:20px;min-width:28px;height:28px}
html.touch #stage .st-token-popup{bottom:142px;width:1040px;max-width:calc(100% - 580px)}
html.touch #stage .st-token-popup header{font-size:20px}
html.touch #stage .st-token-heroes>span{width:56px;height:64px}
html.touch #stage .st-token-heroes img{width:56px;height:56px}
html.touch #stage .st-token-heroes b{font-size:20px}
html.touch #stage .st-root .st-node{width:64px;height:64px;min-height:64px}
html.touch #stage .st-root .st-region{min-height:88px}
html.touch #stage .st-promo{min-height:174px}
html.touch #stage .st-promo-copy>span,html.touch #stage .st-promo-copy>strong,html.touch #stage .st-promo-copy .st-promo-link{font-size:20px}
@media(prefers-reduced-motion:reduce){#stage .st-root button,#stage .st-node-core{transition:none}}

/* Crownfall gold roads: scoped to the story map. Fees stay readable while the world zooms. */
#stage .st-road path{fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:none;opacity:1;filter:none}
#stage .st-road .st-road-shadow{stroke:#101b23b8;stroke-width:10}
#stage .st-road .st-road-bed{stroke:#4f4432;stroke-width:6}
#stage .st-road .st-road-gold{stroke:#958568;stroke-width:2;opacity:.7}
#stage .st-road.locked .st-road-shadow{stroke-width:6;opacity:.7}
#stage .st-road.locked .st-road-bed{stroke-width:3;stroke:#4f5046}
#stage .st-road.locked .st-road-gold{stroke-width:1.2;opacity:.55}
#stage .st-road.planned .st-road-shadow{stroke-width:5;opacity:.4}
#stage .st-road.planned .st-road-bed{stroke:#75827d;stroke-width:1.5;stroke-dasharray:3 6;opacity:.45}
#stage .st-road.planned .st-road-gold{display:none}
#stage .st-road.done .st-road-bed,#stage .st-road.ready .st-road-bed{stroke:#755129;stroke-width:7}
#stage .st-road.done .st-road-gold,#stage .st-road.ready .st-road-gold{stroke:#e2bb70;stroke-width:3.8;opacity:1;filter:drop-shadow(0 1px 3px #eab35466)}
#stage .st-road .st-road-flow{stroke:#fff3c7;stroke-width:2;stroke-dasharray:7 93;stroke-dashoffset:0;animation:none;filter:drop-shadow(0 1px 3px #ffe0a6)}
#stage .st-road.inview .st-road-flow{animation:st-gold-stream 3.6s linear infinite}
#stage .st-root[data-motion-paused="true"] .st-road .st-road-flow{animation:none!important;opacity:0}
@keyframes st-gold-stream{to{stroke-dashoffset:-100}}
#stage .st-root .st-node .st-node-core{position:relative;display:grid;place-items:center;width:40px;height:40px;background:transparent;border:0;box-shadow:none;color:#f9e7bc;transition:transform .16s}
#stage .st-root .st-node .st-node-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:brightness(.78) saturate(.7)}
#stage .st-node .st-node-jewel{width:10px;height:10px;background:#3b3224;border:1px solid #e0bc78;transform:rotate(45deg);box-shadow:0 2px 5px #0c1519}
#stage .st-root .st-node.chapter .st-node-core,#stage .st-root .st-node.start .st-node-core{width:72px;height:72px}
#stage .st-node .st-chapter-art{position:absolute;left:22%;top:22%;width:56%;height:56%;border-radius:50%;background-image:linear-gradient(#19252726,#07121a50),url(world-map-v2.webp);background-size:660px 372px;border:1px solid #e1bc76;filter:saturate(.55) brightness(.65)}
#stage .st-root .st-node .st-node-core>svg{position:absolute;width:20px;height:20px;z-index:2;filter:drop-shadow(0 2px 2px #091319)}
#stage .st-node.chapter .st-node-core>svg{right:12%;bottom:12%;width:23px;height:23px;padding:3px;border-radius:50%;background:#172027;border:1px solid #c8a05e;color:#ffe6ae}
#stage .st-node.opened .st-node-frame,#stage .st-node.can-pay .st-node-frame{filter:brightness(1.12) saturate(1.12) drop-shadow(0 2px 5px #e9b84d73)}
#stage .st-node.opened .st-chapter-art,#stage .st-node.can-pay .st-chapter-art{filter:none}
#stage .st-node.opened .st-node-jewel{background:#ffdc86;border-color:#fff2c6;box-shadow:0 2px 6px #d2a543}
#stage .st-node.can-pay .st-node-jewel{background:#e3bd69;border-color:#fff2c6}
#stage .st-node.selected .st-node-frame{filter:brightness(1.3) saturate(1.1) drop-shadow(0 2px 6px #f1c77394)}
#stage .st-root .st-node.selected .st-node-core{transform:scale(1.06);background:transparent;border:0;box-shadow:none;color:#ffecc1}
#stage .st-root .st-node.planned .st-node-core{width:18px;height:18px;border:1px solid #aa9878;border-radius:50%;background:#25363b;color:#c8b48e;box-shadow:0 2px 4px #101d25}
#stage .st-node.planned .st-node-core>svg{width:10px;height:10px;position:static}
#stage .st-node-title{position:absolute;z-index:8;left:50%;top:calc(100% + 7px);transform:translateX(-50%);width:max-content;max-width:220px;display:none;padding:7px 12px;background:#17242df5;border:1px solid #a58b57;border-radius:4px;pointer-events:none;text-align:center;line-height:1.5}
#stage .st-node-title>span{display:block;font:500 12px/1.5 var(--mg-font);color:#dbc79e}
#stage .st-node-title>b{display:block;font:600 15px/1.6 var(--mg-font);color:#fff0cf;white-space:normal}
#stage .st-node.selected .st-node-title,#stage .st-node:hover .st-node-title,#stage .st-node:focus-visible .st-node-title{display:block}
#stage .st-root .overview .st-node.chapter .st-node-core,#stage .st-root .overview .st-node.start .st-node-core{width:38px;height:38px}
#stage .overview .st-node.chapter .st-node-core>svg{width:16px;height:16px;padding:2px}
#stage .st-root .overview .st-node.event .st-node-core{width:25px;height:25px}
#stage .overview .st-node .st-node-jewel{width:6px;height:6px}
#stage .st-root .overview .st-node.planned .st-node-core{width:13px;height:13px}
#stage .st-root .st-road-price{position:absolute;z-index:6;left:0;top:0;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:64px;min-height:64px;padding:7px 8px 5px;border:1px solid #737667;border-radius:5px;background:linear-gradient(#25313bf7,#14212af7);box-shadow:0 4px 9px #0918219e;cursor:pointer}
#stage .st-root .st-road-price.can-open{border-color:#d7b46d;background:linear-gradient(#39392ef7,#19232af7)}
#stage .st-root .st-road-price:hover{border-color:#f9d68c;background:#34403c}
#stage .st-price-chips{display:flex;gap:4px;align-items:flex-start}
#stage .st-road-chip{display:flex;align-items:center;flex-direction:column;gap:1px;min-width:34px;color:#fff0c5}
#stage .st-road-chip .st-token-emblem{width:34px;height:37px}
#stage .st-road-chip .st-token-emblem img{width:23px;height:23px}
#stage .st-road-chip b{font:600 16px/1.35 var(--mg-font);font-variant-numeric:tabular-nums;color:#d7dbd7;white-space:nowrap}
#stage .st-road-chip.enough .st-token-emblem{filter:drop-shadow(0 1px 5px #edc4779e)}
#stage .st-road-chip.enough b{color:#ffe1a0}
#stage .st-road-chip.partial b{color:#efc49a}
#stage .st-road-chip.missing .st-token-emblem{filter:grayscale(1) brightness(.6)}
#stage .st-road-chip.missing b{color:#b5c0c3}
#stage .st-price-total{padding-top:2px;font:500 12px/1.45 var(--mg-font);color:#e9d5ab}
#stage .st-world.overview .st-road-price{display:none}
#stage .st-map-tools [data-st-motion]{color:#d9b976;border-right:1px solid #6b624c;border-radius:0}
#stage .st-map-tools [data-st-motion][aria-pressed="false"]{color:#c2c8c6}
html.touch #stage .st-road-chip{min-width:40px}
html.touch #stage .st-road-chip b,html.touch #stage .st-price-total,html.touch #stage .st-node-title>span,html.touch #stage .st-node-title>b{font-size:20px}
html.touch #stage .st-node-title{max-width:300px}
@media(prefers-reduced-motion:reduce){#stage .st-road .st-road-flow{animation:none;stroke-dasharray:none;stroke-width:1;opacity:.65}}
/* (22/10) chương 1 miễn phí */
.st-road-price.st-free .st-price-total{color:#ffe39a;font-weight:700;padding:4px 10px}
/* (23/10) Ảnh cảnh trong chương: ảnh ngang 16:9, tràn rộng hơn cột chữ, bấm để xem toàn màn hình */
#stage .st-reading{container-type:inline-size}
#stage .st-reading article .st-scene{width:min(100cqw,1680px);margin:2.4em 0 2.6em calc(50% - min(50cqw,840px));padding:0}
#stage .st-reading .st-scene .st-scene-open{display:block;width:100%;min-height:0;padding:0;margin:0;border:0;background:none;box-shadow:none;cursor:zoom-in;border-radius:6px;overflow:hidden;transform:none}
#stage .st-reading .st-scene .st-scene-open:focus-visible{outline:2px solid #d6b56d;outline-offset:4px}
#stage .st-scene img{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:860px;object-fit:cover;background:#1d2224;border-radius:6px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
#stage .st-scene figcaption{max-width:70ch;margin:.8em auto 0;text-align:center;font-size:.7em;line-height:1.55;font-style:italic;color:#b9ad97}
body .st-scene-view{position:fixed;inset:0;z-index:100000;font-family:var(--mg-font,inherit);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:3vh 3vw;background:rgba(6,8,9,.95);cursor:zoom-out}
body .st-scene-view img{max-width:100%;max-height:86vh;object-fit:contain;border-radius:4px}
body .st-scene-view p{margin:0;max-width:90ch;text-align:center;color:#d8cfbf;font-size:18px;font-style:italic}
body .st-scene-view button{position:absolute;top:18px;right:18px;min-height:48px;font-size:16px;display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #6c5a3d;border-radius:6px;background:#1b2022;color:#e7e1d7;cursor:pointer}
body .st-scene-view button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
html.touch #stage .st-scene figcaption,html.touch body .st-scene-view p{font-size:20px}
@media (prefers-reduced-motion:no-preference){#stage .st-scene img{transition:transform .5s ease}#stage .st-reading .st-scene .st-scene-open:hover img{transform:scale(1.012)}}
/* (26/10) Trang đọc truyện trên điện thoại: nằm ngoài #stage (không bị thu nhỏ), kích thước thật, đọc được cả khi cầm dọc. */
html.st-native-on #MbRotate,html.st-native-on #MbTapHint{display:none!important}
html.st-native-on,html.st-native-on body{overscroll-behavior:none}
body>.st-native{position:fixed;inset:0;z-index:99990;display:flex;flex-direction:column;background:#14191b;color:#eee8dc;font:400 16px/1.5 var(--mg-font,'AD Jakarta',sans-serif);padding-top:var(--stage-top,0px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body>.st-native *{box-sizing:border-box}
body>.st-native ::selection{color:#151719;background:#edcf91}
.st-native .st-reader{display:flex;flex-direction:column;flex:1;min-height:0;background:#14191b}
.st-native .st-reader>header{display:flex;align-items:center;gap:10px;justify-content:space-between;flex:none;padding:8px max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));padding-top:max(8px,env(safe-area-inset-top));border-bottom:1px solid #544a38;background:#1b2022}
.st-native .st-reader>header>div:nth-child(2){flex:1;min-width:0;text-align:center}
.st-native .st-reader>header h2{margin:0;font-size:16px;font-weight:600;line-height:1.25;color:#f0dfbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-native .st-reader>header span{font-size:12px;color:#c7bba4}
.st-native button{font:500 14px/1.3 var(--mg-font,'AD Jakarta',sans-serif);color:#e8dcc7;background:#242628;border:1px solid #6f6554;border-radius:8px;padding:6px 10px;min-height:40px;min-width:40px;display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;touch-action:manipulation}
.st-native button:disabled{color:#77736b;border-color:#464744}
.st-native button svg{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.st-native .st-font-tools{display:flex;gap:6px;align-items:center;flex:none}.st-native .st-font-tools output{min-width:22px;text-align:center;font-size:13px;color:#c7bba4}
.st-native .st-reading{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:18px max(16px,env(safe-area-inset-right)) 40px max(16px,env(safe-area-inset-left));container-type:inline-size}
.st-native .st-reading article{max-width:38em;margin:auto;color:#e7e1d7;font-size:calc(var(--st-reading-size,22px) * .8);line-height:1.75;overflow-wrap:anywhere}
.st-native .st-reading article p{margin:0 0 1em;font-size:1em}
.st-native .st-reading article h2{font-size:1.5em;margin:0 0 .6em;color:#f0dfbb}.st-native .st-reading article h3{font-size:1.25em;margin:.6em 0 1em;color:#f0dfbb}
.st-native .st-reading article hr{border:0;border-top:1px solid #6c5a3d;width:80px;margin:1.8em auto}
.st-native .st-reading blockquote{margin:0 0 1.4em;padding:.9em 1em;background:#24292b;border:1px solid #5a5142;border-radius:8px;font-size:.93em}
.st-native .st-reading blockquote p:last-child{margin-bottom:0}
.st-native .st-prose-table{overflow-x:auto}.st-native .st-reading table{border-collapse:collapse;margin:12px 0;width:100%;font-size:.85em}.st-native .st-reading td,.st-native .st-reading th{padding:6px 8px;text-align:left;border:1px solid #696052}
.st-native .st-reading article .st-scene{width:100cqw;margin:1.6em 0 1.8em calc(50% - 50cqw);padding:0}
.st-native .st-scene .st-scene-open{display:block;width:100%;padding:0;margin:0;border:0;background:none;border-radius:0;min-height:0}
.st-native .st-scene img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#1d2224}
.st-native .st-scene figcaption{margin:.6em 1em 0;text-align:center;font-size:.78em;line-height:1.5;font-style:italic;color:#b9ad97}
.st-native .st-reader footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex:none;padding:6px max(10px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:#1b2022;border-top:1px solid #4d4436}
.st-native .st-reader footer span:empty{display:none}
@media (orientation:landscape) and (max-height:500px){.st-native .st-reader>header{padding-top:4px;padding-bottom:4px}.st-native .st-reader footer{display:none}.st-native .st-reading{padding-top:12px}}
@media (min-width:900px){.st-native .st-reading article .st-scene{width:min(100cqw,60em);margin-left:calc(50% - min(50cqw,30em))}}
@media (orientation:landscape) and (max-height:500px){.st-native .st-reading article .st-scene{width:auto;margin:1.4em 0 1.6em}.st-native .st-scene img{width:auto;max-width:100%;max-height:72vh;aspect-ratio:auto;margin:0 auto;border-radius:6px}}
