:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#dbe8e9;background:#0d2939;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #c0dce5;outline-offset:5px}button:disabled{opacity:.6;cursor:wait}button{touch-action:manipulation}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,17,27,.57),transparent 63%),linear-gradient(0deg,rgba(4,19,29,.65),transparent 32%,transparent 80%,rgba(4,19,29,.3));transition:opacity .8s}.playing .vignette{opacity:.35}header{position:fixed;top:29px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between;z-index:5}.brand{display:flex;align-items:center;gap:14px;color:#d0dfe0;text-decoration:none;font-family:"Songti SC","STSong",serif;font-size:17px;letter-spacing:4px}.brand small{display:block;font-family:sans-serif;font-size:7px;letter-spacing:2px;color:#839fae;margin-top:5px}.seal{width:34px;height:38px;display:grid;place-items:center;border:1px solid #8aa9b273;font-size:22px;letter-spacing:0}nav{display:flex;gap:7px}nav button{color:#a7bdc8;background:#102a3860;border:1px solid #9fc6d022;border-radius:3px;font-size:10px;letter-spacing:1px;padding:10px 12px}nav button:hover{background:#36566580;color:#e0edee}.route{position:absolute;left:50%;transform:translateX(-50%);text-align:center;width:180px;opacity:0;transition:opacity .8s}.playing .route{opacity:1}.route span{font-size:10px;letter-spacing:4px;color:#9eb9c6}.route-track{height:1px;background:#a2c0cc33;margin-top:12px}.route-track i{display:block;height:1px;width:0;background:#adced8}#welcome{position:fixed;left:50%;top:auto;bottom:max(12%,calc(env(safe-area-inset-bottom) + 24px));transform:translateX(-50%);width:350px;max-width:calc(100vw - 48px);z-index:2}.kicker{display:flex;align-items:center;gap:13px;font-size:10px;letter-spacing:3px;color:#a1bcc7}.kicker i{width:22px;height:1px;background:#8daeba}.kicker span{font-size:10px;letter-spacing:1px;margin-left:6px;color:#7095a6}h1{font-family:"Songti SC","STSong","Noto Serif SC",serif;font-size:clamp(46px,6.2vw,84px);font-weight:500;line-height:1.2;letter-spacing:12px;margin:20px 0 12px;color:#dce6e7;text-shadow:0 3px 30px #00192740}.roman{font-size:9px;letter-spacing:5.9px;margin:0;color:#87a8b8}.intro{color:#a3bdc7;font-size:12px;font-weight:300;letter-spacing:2px;line-height:2.3;margin:32px 0 25px}.primary{display:flex;align-items:center;justify-content:space-between;width:222px;padding:17px 20px;border:1px solid #d7e6e55e;border-radius:2px;background:#bfd3d7e8;color:#153240;font-size:12px;letter-spacing:3px;transition:background .2s,transform .2s}.primary:hover{background:#e0ebec;transform:translateY(-1px)}.primary .arrow{font-family:serif;font-size:20px;line-height:10px}.loading{height:1px;width:222px;background:#8ab0c225;margin-top:9px}.loading i{display:block;width:4%;height:100%;background:#abcad2;transition:width .6s}.load-status{font-size:9px;color:#6f96a8;letter-spacing:1px;margin:8px 0}.loaded .loading,.loaded .load-status{opacity:0;transition:opacity 1s}.controls{display:flex;align-items:center;gap:16px;margin-top:23px;color:#7d9ba9;font-size:9px;letter-spacing:.4px}kbd{font-family:inherit;color:#a7bec8;border:1px solid #9cbbc12b;padding:3px 5px;border-radius:2px;font-size:9px;margin-right:3px}.touch{display:none}.map-label{position:fixed;right:43px;bottom:105px;display:flex;gap:19px;align-items:center;color:#a4bec9}.map-label .chapter{font-size:40px;font-family:"Songti SC","STSong",serif;font-weight:300;color:#aec8d161;border-right:1px solid #97b9c43d;padding-right:18px}.map-label small{font-size:9px;letter-spacing:3px;color:#709aaf}.map-label p{font-size:15px;font-family:"Songti SC","STSong",serif;letter-spacing:7px;margin:8px 0 0}footer{position:fixed;bottom:28px;left:40px;right:40px;border-top:1px solid #a1c1cc1a;padding-top:17px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:3px;color:#688d9f}footer b{font-weight:300;margin:0 13px;color:#577887}.journey{position:fixed;top:115px;left:42px;display:flex;flex-direction:column;gap:9px;pointer-events:none;text-shadow:0 2px 8px #072535}.journey>span{font-size:13px;letter-spacing:5px;font-family:"Songti SC","STSong",serif;color:#bed0d6}.journey small{font-size:9px;color:#829eac;letter-spacing:1px}.journey b{font-size:16px;color:#c1d3d8;font-weight:300;letter-spacing:1px;margin:0 4px;font-variant-numeric:tabular-nums}.flight-hint{position:fixed;bottom:32px;left:40px;font-size:10px;color:#91afbd;letter-spacing:1px;pointer-events:none}.flight-hint i{font-style:normal;margin:0 12px;color:#567d8d}#boostBtn{position:fixed;bottom:28px;right:38px;width:64px;height:64px;border:1px solid #b0ced148;border-radius:50%;background:#0c293845;color:#c2d7dd;font-family:"Songti SC","STSong",serif;font-size:15px;letter-spacing:3px;touch-action:none}#boostBtn span{display:block;font-family:sans-serif;font-size:8px;color:#7299ab;margin-top:5px;letter-spacing:2px}#boostBtn.active,#boostBtn:active{background:#7199aa66;border-color:#c3dde0}#toast{position:fixed;top:21%;left:50%;transform:translate(-50%,-10px);text-align:center;white-space:nowrap;font-size:11px;letter-spacing:2px;color:#c1d3db;opacity:0;transition:opacity .4s,transform .4s;pointer-events:none;text-shadow:0 2px 14px #031b28}#toast.show{opacity:1;transform:translate(-50%,0)}.overlay{position:fixed;inset:0;background:#031421a6;backdrop-filter:blur(9px);display:grid;place-items:center;z-index:10;padding:24px}.panel{padding:42px;width:390px;max-width:100%;background:#122e3bbd;border:1px solid #9db9c124;border-radius:3px}.panel .kicker{font-size:9px;color:#819fad;letter-spacing:2px}.panel h2{font-family:"Songti SC","STSong",serif;font-size:35px;line-height:1.5;letter-spacing:3px;font-weight:400;margin:18px 0 12px}.panel p{font-size:12px;color:#88a7b6;line-height:1.9;margin-bottom:30px}.panel .primary{width:100%}.secondary{display:block;width:100%;background:none;border:0;padding:18px 0 0;color:#829dac;letter-spacing:2px;font-size:11px}.secondary:hover{color:#d0e4e9}.hidden{display:none!important}
@media(max-width:760px){header{top:21px;left:22px;right:22px}.brand{gap:10px;font-size:14px;letter-spacing:3px}.seal{width:28px;height:33px;font-size:20px}.brand small{font-size:5px;letter-spacing:1.3px}nav{gap:5px}nav button{padding:8px;font-size:9px;letter-spacing:0}.route{top:76px;width:120px}.route span{font-size:9px;letter-spacing:2px}.kicker{font-size:9px;letter-spacing:2px}h1{font-size:48px;letter-spacing:7px;margin:17px 0 11px}.roman{font-size:7px;letter-spacing:4px}.intro{font-size:11px;margin:23px 0 20px;line-height:2.1}.primary{width:205px;padding:15px 19px}.loading{width:205px}.controls{margin-top:19px;font-size:9px}.desktop{display:none}.touch{display:block}.map-label{right:24px;bottom:49px;gap:10px}.map-label .chapter{font-size:24px;padding-right:10px}.map-label small{font-size:7px;letter-spacing:1px}.map-label p{font-size:11px;letter-spacing:4px;margin-top:5px}footer{left:23px;right:23px;bottom:17px;padding-top:11px;font-size:7px;letter-spacing:2px}footer span:last-child{display:none}footer b{margin:0 7px}.journey{top:105px;left:23px}.journey>span{display:none}.journey small{font-size:8px}.journey b{font-size:14px}.flight-hint{left:23px;bottom:26px;font-size:9px;letter-spacing:0}#boostBtn{bottom:23px;right:23px;width:60px;height:60px}#toast{top:23%;font-size:9px;letter-spacing:1px}.panel{padding:32px}.panel h2{font-size:29px}.vignette{background:linear-gradient(0deg,#041827e6,transparent 82%),linear-gradient(90deg,#03172633,transparent)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#openingFx{position:fixed;inset:0;width:100%;height:100%;z-index:20;pointer-events:none}.launching header,.launching #toast{visibility:hidden;pointer-events:none}.launching .vignette{opacity:.24}
.brand{min-width:0;letter-spacing:2px}.brand-name{display:block;line-height:1.4}.brand>span:last-child{min-width:0}.seal,header nav{flex-shrink:0}header{gap:14px}
@media(max-width:760px){.brand{gap:8px;font-size:13px;letter-spacing:1px}.brand small{font-size:6px;letter-spacing:1px}}
.intro strong{color:#d6c7a4;font-weight:400}
#welcome h1{font-size:clamp(42px,5.3vw,76px);letter-spacing:5px}
.welcome-note{font-size:11px;letter-spacing:3px;margin:0;color:#87a8b8}
#welcome .load-status{font-size:11px;color:#c6b990}
@media(max-width:760px){#welcome h1{font-size:clamp(32px,8.8vw,48px);letter-spacing:2px}.welcome-note{font-size:10px;letter-spacing:2px}}
.brand-name>span{white-space:nowrap}
/* A matched pair of worn bronze skill seals, with inset jade reliefs. */
#boostBtn,:is(#riftBtn,#goldBtn){position:fixed;bottom:28px;width:100px;height:100px;padding:9px 9px 15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;border:0;border-radius:50%;background:none;isolation:isolate;color:#dfcea4;box-shadow:0 5px 13px #06101440;transition:transform .22s var(--oath-ease),filter .22s var(--oath-ease),box-shadow .22s var(--oath-ease)}
#boostBtn{right:38px;touch-action:none}:is(#riftBtn,#goldBtn){right:152px;touch-action:manipulation}
#boostBtn::before,:is(#riftBtn,#goldBtn)::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:url('./assets/skill-relic.svg') center/contain no-repeat}
#boostBtn::after,:is(#riftBtn,#goldBtn)::after{content:"";position:absolute;inset:12%;z-index:-1;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse at 50% 25%,#c4ac6638,transparent 74%);opacity:0;transition:opacity .22s var(--oath-ease)}
#boostBtn>*,:is(#riftBtn,#goldBtn)>*{pointer-events:none;position:relative}
#boostBtn .skill-icon{display:block;width:72px;height:43px;object-fit:contain;filter:drop-shadow(0 1px 1px #0008);transition:filter .22s var(--oath-ease),transform .22s var(--oath-ease)}
:is(#riftBtn,#goldBtn) img{display:block;width:48px;height:43px;object-fit:contain;filter:drop-shadow(0 1px 1px #0008);transition:filter .22s var(--oath-ease)}
#boostBtn .skill-name,:is(#riftBtn,#goldBtn)>span{display:block;margin:0;font:600 12px/17px "Songti SC","STSong",serif;letter-spacing:1px;color:#e4d3a8;text-shadow:0 1px 1px #080f0d}
#boostBtn .skill-hint,:is(#riftBtn,#goldBtn) small{display:block;margin:3px 0 0;font:8px/11px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:.7px;color:#b3b29b;text-shadow:0 1px 1px #101b16;font-variant-numeric:tabular-nums}
#boostBtn:hover,:is(#riftBtn,#goldBtn):not(:disabled):hover{filter:brightness(1.13);transform:translateY(-1px)}
#boostBtn:hover::after,:is(#riftBtn,#goldBtn):not(:disabled):hover::after{opacity:.65}
#boostBtn.active,#boostBtn:active,:is(#riftBtn,#goldBtn):not(:disabled):active{transform:translateY(1px) scale(.96);background:none;box-shadow:0 2px 6px #04110e70,0 0 15px #c7a15229}
#boostBtn.active::after,#boostBtn:active::after,.rifting #riftBtn::after{opacity:1}
#boostBtn.active .skill-icon{filter:drop-shadow(0 0 4px #d9b96d70);transform:translateY(-1px)}
#boostBtn.active .skill-name{color:#ffdf99}
#boostBtn:focus-visible,:is(#riftBtn,#goldBtn):focus-visible{outline:2px solid #ddc48e;outline-offset:3px}
:is(#riftBtn,#goldBtn):disabled{opacity:.63;cursor:default;filter:saturate(.5);transform:none}
.rifting #riftBtn:disabled{filter:none;opacity:1;box-shadow:0 0 16px #82b9ae35}
.rifting #riftBtn img{filter:drop-shadow(0 0 4px #a7d7c56b)}
#riftStatus{position:fixed;top:14%;left:50%;transform:translateX(-50%);font-family:"Songti SC",serif;font-size:12px;letter-spacing:7px;color:#cae7ef;text-shadow:0 0 18px #3cb7e7;pointer-events:none;opacity:0;transition:opacity .3s;z-index:4}.rifting #riftStatus{opacity:.85}.rifting .flight-hint{opacity:0}.rifting .vignette{opacity:.16}.rifting #boostBtn{opacity:1}
@media(min-width:761px){.flight-hint{max-width:calc(100vw - 310px);font-size:9px;letter-spacing:.3px}.flight-hint i{margin:0 7px}}
@media(max-width:760px){#riftBtn{right:122px;bottom:22px;width:86px;height:86px;padding:8px 7px 12px}#riftBtn img{width:42px;height:36px}#riftBtn>span{font-size:11px;line-height:15px}#riftBtn small{font-size:8px;margin-top:2px}.flight-hint.touch{bottom:115px;color:#88a9b8}#riftStatus{top:23%;font-size:11px;letter-spacing:5px}}
@media(max-width:760px){#boostBtn{width:86px;height:86px;right:22px;bottom:22px;padding:8px 7px 12px}#boostBtn .skill-icon{width:61px;height:36px}#boostBtn .skill-name{font-size:11px;line-height:15px}#boostBtn .skill-hint{font-size:8px;margin-top:2px}.intro{max-width:calc(100vw - 58px);text-wrap:pretty}}

#handWarning{position:fixed;top:103px;left:50%;transform:translateX(-50%);z-index:5;width:300px;max-width:78vw;padding:14px 22px 13px;text-align:center;pointer-events:none;background:linear-gradient(90deg,transparent,#192a30ed 24%,#192a30ed 76%,transparent);text-shadow:0 2px 12px #00101c;color:#e0d3b7}
#handWarning>*{display:block}.threat-kicker{font-size:8px;letter-spacing:5px;color:#b2ac9a;margin-bottom:6px}#handTitle{font-family:"Songti SC",serif;font-size:18px;letter-spacing:3px;font-weight:400}#handHint{font-size:10px;letter-spacing:1px;color:#a9bcc4;margin-top:7px}.hand-track{height:2px;width:160px;margin:12px auto 0;background:#b9a47924;overflow:hidden}#handMeter{display:block;height:100%;background:#d8bd84;transform-origin:left center}
#handWarning[data-urgent="true"]{color:#ffdfac;background:linear-gradient(90deg,transparent,#48321fe8 24%,#48321fe8 76%,transparent)}#handWarning[data-urgent="true"] #handHint{color:#f5e8cc}.hand-danger #riftBtn:not(:disabled){border-color:#f7daa0;box-shadow:0 0 24px #e5ba5660,inset 0 0 18px #a9eaff22}.rifting #handWarning{top:175px;opacity:.72}.hand-danger .vignette{box-shadow:inset 0 0 80px #b380252a}
@media(max-width:760px){#handWarning{top:160px;width:280px;padding:10px 14px}#handTitle{font-size:15px}.rifting #handWarning{top:30%}#handHint{font-size:9px}}

/* Summit identity follows a real point on the rock, not a screen-space prop. */
#zhongLabel{position:fixed;z-index:3;pointer-events:none;transform:translate(-50%,-100%);text-align:center;color:#d8d8cc;text-shadow:0 2px 10px #061b26,0 0 4px #0b2330;transition:opacity .25s}
#zhongLabel[hidden]{display:none}#zhongLabel span{display:block;font-family:"Songti SC",serif;font-size:16px;letter-spacing:5px;padding-left:5px}#zhongLabel small{display:block;font-size:8px;letter-spacing:3px;margin-top:6px;color:#aabec5}#zhongLabel i{display:block;width:1px;height:18px;background:linear-gradient(#d2d3c766,transparent);margin:9px auto 0}
@media(max-width:760px){#zhongLabel span{font-size:13px;letter-spacing:3px}#zhongLabel small{font-size:7px;letter-spacing:2px}#zhongLabel i{height:10px;margin-top:6px}}

/* Blood oath identity: a quiet scene, molten lettering and an engraved brass seal. */
:root{--oath-serif:"Songti SC","STSong","Noto Serif SC",serif;--oath-gold:#ebce9a;--oath-ease:cubic-bezier(.22,1,.36,1)}
.brand{gap:12px;font-family:var(--oath-serif)}
.blood-emblem{position:relative;display:block;width:46px;height:57px;flex:none;filter:drop-shadow(0 0 10px #cc512b38)}
.blood-emblem img{display:block;width:100%;height:100%;object-fit:contain}
.blood-emblem i{position:absolute;left:42%;top:30%;width:2px;height:3px;background:#f1b76c;border-radius:50%;box-shadow:0 0 5px #f56c37;animation:blood-spark 3.8s linear infinite;opacity:0}
.blood-emblem i:nth-of-type(2){left:68%;animation-delay:-1.5s;animation-duration:4.3s}
.blood-emblem i:nth-of-type(3){left:20%;animation-delay:-2.8s;animation-duration:3.5s}
.brand-name{font-size:17px;letter-spacing:2px;color:#edceaa;text-shadow:0 1px 1px #361216,0 0 12px #b844222b}
.brand small{color:#a7b5b9;font-size:8px;letter-spacing:3px}
body:not(.playing) .brand-name{display:block}
body:not(.playing) .brand small{font:12px var(--oath-serif);letter-spacing:3px;margin:0}

.title-lockup{position:relative;width:460px;max-width:100%;isolation:isolate}
#welcome h1{font-family:var(--oath-serif);font-weight:700;line-height:1.25;letter-spacing:6px;margin:0;color:#e4bc87;text-shadow:none}
#welcome h1>span{position:relative;display:block;width:max-content;max-width:100%;white-space:nowrap}
.title-fire{font-size:clamp(54px,4.2vw,78px);letter-spacing:4px;background:linear-gradient(175deg,#fff0c9 3%,#e6cba7 24%,#c59166 43%,#f0b168 50%,#b64d34 69%,#6b2024 89%,#ef9b54 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 1px #220c17c9)}
.title-vow{font-size:41px;letter-spacing:4px;margin-top:7px;background:linear-gradient(178deg,#efd7af 4%,#caac87 43%,#d68b5b 67%,#a54533 94%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 1px #220c17c9)}
.title-fire::before,.title-vow::before{content:attr(data-ink);position:absolute;inset:0;z-index:-1;color:#db5d32;filter:blur(10px);opacity:.2;animation:oath-glow 5s ease-in-out infinite}
.title-vow::before{filter:blur(7px);opacity:.12;animation-delay:-1.8s}
.title-embers{position:absolute;inset:-10px 15px 0 0;pointer-events:none;z-index:-1}
.title-embers i{position:absolute;bottom:26%;width:2px;height:3px;border-radius:50%;background:#ffd49a;box-shadow:0 0 7px #f68a3e;opacity:0;animation:title-spark 5.8s linear infinite}
.title-embers i:nth-child(1){left:8%;animation-delay:-2s}.title-embers i:nth-child(2){left:26%;animation-delay:-4.4s;bottom:58%}.title-embers i:nth-child(3){left:42%;animation-delay:-.7s}.title-embers i:nth-child(4){left:57%;animation-delay:-3.1s;bottom:54%;width:1px}.title-embers i:nth-child(5){left:69%;animation-delay:-5.1s;width:1px}.title-embers i:nth-child(6){left:83%;animation-delay:-1.4s;bottom:67%}.title-embers i:nth-child(7){left:94%;animation-delay:-3.9s;width:1px}
.title-rule{display:flex;align-items:center;gap:9px;width:114px;margin:24px 0 26px;opacity:.65}
.title-rule i{height:1px;flex:1;background:linear-gradient(90deg,#91653633,#d6ac6d)}
.title-rule i:last-child{transform:rotate(180deg)}
.title-rule b{font-size:5px;font-weight:400;color:#daac72}
/* Cast brass CTA: physical rim, textured inset plate and engraved lettering. */
#startBtn{isolation:isolate;position:relative;width:350px;max-width:100%;height:105px;padding:0 76px;justify-content:center;border:0;border-radius:12px;background:none;box-shadow:none;color:#2b2418;font:700 22px var(--oath-serif);letter-spacing:6px;transition:transform .26s var(--oath-ease),filter .26s var(--oath-ease);filter:drop-shadow(0 8px 7px #06131c85)}
#startBtn .relic-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#startText{position:relative;z-index:2;padding-left:6px;white-space:nowrap;text-shadow:0 1px 0 #ecd5a1a8,0 -1px 0 #1f1a1266;pointer-events:none}
.relic-light{position:absolute;z-index:1;inset:23% 7% 21%;overflow:hidden;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px);pointer-events:none}
.relic-light::after{content:"";position:absolute;inset:-100% -25%;background:linear-gradient(110deg,transparent 39%,#f9edcd2b 49%,#f9e7bf08 55%,transparent 64%);transform:translateX(-75%);animation:relic-sheen 10s var(--oath-ease) infinite}
#startBtn:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.09) drop-shadow(0 11px 9px #06131c7a)}
#startBtn:not(:disabled):active{transform:translateY(3px) scale(.96);filter:brightness(.98) drop-shadow(0 3px 3px #06131c73)}
#startBtn:focus-visible{outline:2px solid #f5d9a7;outline-offset:5px}
#startBtn:disabled{opacity:.57;font-size:16px;letter-spacing:2px}
#startBtn:disabled .relic-light::after{animation:none}
#welcome .loading{width:280px;margin:10px 0 0 35px;background:#b8874e22}
#welcome .loading i{background:#d7af73}
#welcome .load-status{font-size:10px;letter-spacing:1px;color:#c5ae8c;margin:9px 0 0 35px;line-height:17px;min-height:17px}
#welcome .controls{gap:15px;white-space:nowrap;font-size:9px;letter-spacing:.3px;color:#a2b1b8;margin-top:20px}
@keyframes blood-spark{0%,12%{transform:translate(0,5px) scale(.7);opacity:0}30%{opacity:.8}85%,100%{transform:translate(7px,-23px) scale(.3);opacity:0}}
@keyframes title-spark{0%,14%{transform:translate(0,10px) scale(.6);opacity:0}35%{opacity:.8}90%,100%{transform:translate(13px,-48px) scale(.3);opacity:0}}
@keyframes oath-glow{0%,100%{opacity:.13;transform:translateY(1px)}50%{opacity:.33;transform:translateY(-1px)}}
@keyframes relic-sheen{0%,64%{transform:translateX(-75%);opacity:0}68%{opacity:1}95%,100%{transform:translateX(75%);opacity:0}}
@media(min-width:761px) and (max-height:700px){.title-fire{font-size:54px}.title-vow{font-size:33px}.title-rule{margin:17px 0}}
@media(max-width:760px){
 header{top:max(18px,env(safe-area-inset-top));left:22px;right:22px;gap:8px}
 .blood-emblem{width:32px;height:40px}.brand{gap:7px}.brand-name{font-size:11px;letter-spacing:.5px;max-width:145px}.brand small{font-size:6px;letter-spacing:1px}body:not(.playing) .brand small{font-size:10px;letter-spacing:1.5px}
 nav button{font-size:8px;padding:8px 7px}nav{gap:4px}
 #welcome{width:300px}
 #welcome h1{letter-spacing:4px}.title-fire{font-size:clamp(38px,10.5vw,48px);letter-spacing:3px}.title-vow{font-size:30px;letter-spacing:3px;margin-top:3px}.title-rule{width:91px;margin:15px 0 17px}
 #startBtn{width:300px;height:90px;padding:0 62px;font-size:20px;letter-spacing:5px}
 #welcome .loading{width:236px;margin-left:32px;margin-top:5px}#welcome .load-status{font-size:9px;margin:5px 0 0 32px;line-height:14px;min-height:14px}
 #welcome .controls{font-size:9px;margin-top:12px;color:#9eafb6;letter-spacing:.5px}
}
@media(max-width:760px) and (max-height:650px){#welcome{bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px))}.title-fire{font-size:36px}.title-vow{font-size:25px}.title-rule{margin:11px 0}.title-embers{display:none}#welcome .controls{margin-top:6px}}
@media(max-width:360px){body:not(.playing) .brand small{font-size:9px;letter-spacing:.5px}.brand-name{max-width:112px}.brand small{display:none}body:not(.playing) .brand small{display:block}}
@media(prefers-reduced-motion:reduce){.blood-emblem i,.title-embers i,.title-fire::before,.title-vow::before,.relic-light::after{animation:none!important}.blood-emblem i,.title-embers i{display:none}}

/* Three blood gems sit beside the journey instead of obscuring the flight path. */
#vitality{display:flex;align-items:center;gap:10px;margin-top:5px;position:relative;color:#ceb991}
.vitality-caption{font-family:"Songti SC","STSong",serif;font-size:11px;letter-spacing:3px;color:#b1aaa0}
.blood-pips{display:flex;align-items:center;gap:6px}.blood-pip{width:19px;height:29px;overflow:visible;filter:drop-shadow(0 0 5px #ce513b38);transition:filter .2s}
.blood-mount{fill:#392c2a;stroke:#bda374;stroke-width:.85}.blood-core{fill:#b94632;stroke:#e3a35e;stroke-width:.55;transition:fill .22s,stroke .22s}.blood-glint{fill:none;stroke:#f4caa1;stroke-width:1;stroke-linecap:round;opacity:.8}
.spent{filter:none}.spent .blood-core{fill:#26393c;stroke:#707572}.spent .blood-mount{stroke:#647271}.spent .blood-glint{opacity:.13}
.vitality-count{font:11px/1.3 system-ui;font-variant-numeric:tabular-nums;color:#d7b8a2}.vitality-count b{font-size:12px;color:inherit;font-weight:400;margin:0}.vitality-count i{font-size:9px;font-style:normal;color:#899997}#vitality[data-low="true"] .blood-pip:not(.spent){filter:drop-shadow(0 0 8px #f1714b99)}
#healthLoss{position:absolute;left:166px;top:5px;font-size:16px;color:#f7a187;opacity:0}
#damageVeil{position:fixed;inset:0;pointer-events:none;z-index:6;opacity:0;background:radial-gradient(ellipse at center,transparent 38%,#6d211040 66%,#ad36129c);box-shadow:inset 0 0 90px #b64c2633}
#pulseWarning{position:fixed;top:20%;left:50%;transform:translateX(-50%);pointer-events:none;z-index:4;font-family:"Songti SC",serif;font-size:14px;letter-spacing:3px;color:#dedddd;text-shadow:0 2px 12px #102b39,0 0 16px #9bcadb80;padding:10px 24px;background:linear-gradient(90deg,transparent,#142b3699,transparent)}
#pulseWarning[data-phase="flying"]{color:#e8d6b6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){#vitality{gap:7px;margin-top:2px}.blood-pip{width:16px;height:25px}.blood-pips{gap:5px}.vitality-caption{font-size:10px;letter-spacing:2px}#healthLoss{left:145px;top:3px}#pulseWarning{top:26%;font-size:12px;letter-spacing:2px;white-space:nowrap;padding:8px 16px}}

/* Supplied calligraphic lockup, with transparent scenery between the strokes. */
header{align-items:flex-start}
.brand{display:block;flex:0 0 auto;width:132px;line-height:0;letter-spacing:0}
.brand .brand-logo{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 2px 3px #071c3066)}
header .route{top:10px}
.journey{top:136px}
@media(max-width:760px){.brand{width:96px}.journey{top:100px}}
@media(max-width:360px){.brand{width:86px}.journey{top:94px}}

/* Loading is a tiny pursuit: an approaching robed figure over engraved peaks. */
.booting #welcome,.booting header,.booting #zhongLabel{visibility:hidden}
#arrivalLoading{--arrival:0%;position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:32px;background:radial-gradient(ellipse at 50% 42%,#1c3541 0%,#102530 48%,#081620 100%);color:#d8c6a0;isolation:isolate;transition:opacity .55s ease,visibility .55s ease}
#arrivalLoading[hidden]{display:none}
#arrivalLoading.arrived{opacity:0;visibility:hidden;pointer-events:none}
.arrival-haze{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 32% 63%,#76979a0b,transparent 38%)}
.arrival-haze::before,.arrival-haze::after{content:"";position:absolute;width:100%;height:34%;left:-10%;top:30%;background:radial-gradient(ellipse,#88a5a40d,transparent 65%);transform:rotate(-14deg);animation:arrival-mist 12s ease-in-out infinite alternate}
.arrival-haze::after{top:48%;left:15%;animation-delay:-6s;opacity:.7}
.arrival-card{position:relative;width:min(480px,100%);transform:translateY(-8%)}
.arrival-overline{display:flex;justify-content:center;align-items:center;gap:16px;font:10px var(--oath-serif);letter-spacing:6px;color:#8e9c9b;margin-bottom:23px;padding-left:6px}
.arrival-overline i{width:28px;height:1px;background:linear-gradient(90deg,transparent,#a2987280)}
.arrival-overline i:last-child{transform:rotate(180deg)}
#arrivalTitle{text-align:center;font:400 clamp(19px,2.3vw,27px)/1.7 var(--oath-serif);letter-spacing:3px;margin:0;color:#e0cfab;text-shadow:0 2px 12px #ddbb6620}
.arrival-dots{display:inline-block;width:0;animation:arrival-breath 2s ease-in-out infinite}
#arrivalQuip{font-size:11px;line-height:1.8;letter-spacing:1px;color:#93a4a8;text-align:center;margin:14px 0 13px;min-height:20px}
.arrival-journey{height:96px;position:relative;margin:0 7px}
.arrival-mountains{position:absolute;width:100%;height:90px;bottom:0;mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.arrival-traveller{position:absolute;width:56px;height:51px;bottom:1px;left:var(--arrival);transform:translateX(-70%);transition:left .3s ease;filter:drop-shadow(0 0 6px #e7c67b30)}
.arrival-traveller svg{width:100%;height:100%;overflow:visible}
.arrival-robes{animation:arrival-flight 1.8s ease-in-out infinite}
.arrival-destination{position:absolute;right:-6px;bottom:22px;writing-mode:vertical-rl;font:10px var(--oath-serif);letter-spacing:3px;color:#a89d83}
.arrival-track{position:relative;height:9px;border:1px solid #9c875246;border-radius:1px;background:#050f16;box-shadow:0 1px 0 #bbbfaf12,inset 0 1px 4px #0009;padding:2px}
.arrival-track::before,.arrival-track::after{content:"";position:absolute;top:1px;width:5px;height:5px;border:1px solid #b8a27490;background:#15252b;transform:rotate(45deg)}
.arrival-track::before{left:-10px}.arrival-track::after{right:-10px}
.arrival-fill{display:block;position:relative;width:var(--arrival);height:3px;background:linear-gradient(90deg,#5b684f,#9e9060 55%,#e8cf8f);box-shadow:0 0 9px #e0b66e40;transition:width .3s ease;overflow:hidden}
.arrival-fill::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,#fff3c8a6 50%,transparent 100%);width:75px;animation:arrival-current 2.2s linear infinite}
.arrival-tip{position:absolute;left:clamp(3px,var(--arrival),calc(100% - 3px));top:2px;width:3px;height:3px;border-radius:50%;background:#fff1bf;box-shadow:0 0 9px 2px #eaca8770;transition:left .3s ease}
.arrival-footer{display:flex;align-items:center;justify-content:space-between;margin-top:17px;color:#8c9e9f;font:10px/1.5 var(--oath-serif);letter-spacing:3px}
.arrival-footer-dot{color:#ae9569;margin:0 5px}
.arrival-number{color:#d9c28a;font-family:Georgia,serif;letter-spacing:1px;font-variant-numeric:tabular-nums;min-width:58px;text-align:right}
.arrival-number b{font-size:24px;font-weight:400}.arrival-number small{font:9px sans-serif;margin-left:4px;color:#a99b7a}
@keyframes arrival-flight{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes arrival-current{from{transform:translateX(-80px)}to{transform:translateX(480px)}}
@keyframes arrival-breath{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes arrival-mist{from{transform:translateX(-4%) rotate(-14deg)}to{transform:translateX(4%) rotate(-10deg)}}
@media(max-width:520px){#arrivalLoading{padding:30px}#arrivalTitle{font-size:19px;letter-spacing:1px}#arrivalQuip{font-size:10px;letter-spacing:.5px}.arrival-overline{margin-bottom:20px}.arrival-footer{font-size:9px;letter-spacing:2px}.arrival-journey{height:88px}}
@media(prefers-reduced-motion:reduce){#arrivalLoading *,#arrivalLoading *::before,#arrivalLoading *::after{animation:none!important;transition:none!important}}

/* A third antique seal for the short, invulnerable golden escape. */
#goldBtn{right:266px;touch-action:manipulation}#goldBtn img{width:48px;height:43px}
#goldBtn.active{opacity:1;filter:none;box-shadow:0 0 23px #e9be493d}#goldBtn.active::after{opacity:1}
#goldBtn.active img{filter:drop-shadow(0 0 5px #ffd56595)}.gold-dashing .flight-hint{opacity:.35}
@media(max-width:1100px){.flight-hint.desktop{max-width:calc(100vw - 400px);line-height:1.8;bottom:27px}.flight-hint i{margin:0 4px}}
@media(max-width:760px){#goldBtn{right:222px;bottom:22px;width:86px;height:86px;padding:8px 7px 12px}#goldBtn img{width:42px;height:36px}#goldBtn>span{font-size:11px;line-height:15px}#goldBtn small{font-size:8px;margin-top:2px}}
