:root{color-scheme:dark;--paper:#e4dfd2;--red:#ba211b}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#161714;color:var(--paper);font-family:Arial,'Noto Sans KR',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0}button:focus-visible,a:focus-visible{outline:2px solid #e05343;outline-offset:5px}[hidden]{display:none!important}#world{display:block;width:100%;height:100%;touch-action:none}.grain,.vignette{position:fixed;inset:0;pointer-events:none}.grain{opacity:.08;z-index:3;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.65' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.vignette{z-index:2;background:radial-gradient(ellipse at 50% 48%,transparent 25%,#080a0970 100%)}header{position:fixed;z-index:12;top:0;left:0;right:0;padding:27px 36px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#eee9de;pointer-events:auto}.brand img{width:27px;height:34px;object-fit:contain}.brand span{font-size:10px;line-height:1.12;font-weight:900;letter-spacing:2px}.topright{display:flex;align-items:center;gap:25px;font-size:9px;letter-spacing:2px}.topright button{pointer-events:auto;background:#16171480;border:1px solid #ded7c42b;padding:10px 12px;font-size:9px;letter-spacing:1px;backdrop-filter:blur(6px)}#intro{position:fixed;z-index:10;inset:0;background:#151613}.intro-image{position:absolute;inset:0;background:url('assets/reference.webp') center right/cover no-repeat;filter:brightness(.56) contrast(1.12);opacity:.78}.intro-shade{position:absolute;inset:0;background:linear-gradient(90deg,#10110ff2 0%,#10110fbb 31%,#10110f15 74%),linear-gradient(0deg,#10110fe6,transparent 32%)}.intro-content{position:absolute;left:9%;top:50%;transform:translateY(-48%);max-width:620px}.eyebrow{letter-spacing:4px;font-size:10px;color:#a5a394;margin:0 0 24px}h1{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(72px,10vw,154px);font-weight:900;letter-spacing:-3px;line-height:.85;margin:0;color:#e9e3d7}h1 span{display:block;font-family:Arial,sans-serif;font-size:12px;letter-spacing:13px;margin:20px 0 26px;padding-left:5px;color:#aaa79c}.redline{height:2px;background:#ba211b;width:46px;margin:25px 0}.lead{font-size:clamp(20px,2.4vw,31px);font-weight:700;line-height:1.55;letter-spacing:-1px;margin:0 0 12px}.subtitle{color:#a5a394;font-size:12px;margin-bottom:30px}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:70px;padding:18px 23px;min-width:220px;background:#a4241d;color:#fff0df;font-size:12px;letter-spacing:1px;transition:background .2s,transform .2s}.primary:hover{background:#c52d23;transform:translateY(-2px)}.primary span{font-size:20px}.intro-controls{display:flex;gap:18px;margin-top:25px;font-size:10px;color:#9e9d91}.intro-controls b{font-weight:500;color:#c8c4b8;margin-right:5px}.edition{font-size:9px;letter-spacing:2px;color:#74796d;margin-top:30px;display:flex;align-items:center;gap:12px}.edition i{width:24px;height:1px;background:#77796c}.intro-foot{position:absolute;bottom:25px;left:36px;right:36px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#8c8f80}#hud{position:fixed;z-index:5;inset:0;pointer-events:none}.scene-title{position:absolute;top:110px;left:36px;transition:opacity .5s}.scene-title p{font-size:9px;letter-spacing:3px;color:#d9d6c1c0}.scene-title h2{font-size:18px;font-weight:500;letter-spacing:-.5px;text-shadow:0 1px 10px #111;margin:12px 0}#lyric{position:absolute;left:15%;right:15%;bottom:23%;text-align:center;font-size:clamp(16px,2vw,25px);font-weight:700;line-height:1.8;text-shadow:0 2px 15px #000;opacity:0;transition:opacity .5s}#lyric small{display:block;font-size:10px;letter-spacing:2px;color:#ddd5bf}#callout{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font-size:clamp(36px,6vw,80px);font-weight:900;letter-spacing:8px;color:#e4ddca;opacity:0;text-shadow:2px 2px #81241b;transition:opacity .2s;white-space:nowrap}.bottom{position:absolute;left:36px;right:36px;bottom:30px;display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.pace{min-width:100px}.pace>span{display:block;font-size:11px;letter-spacing:3px;margin-bottom:9px}.pace small{font-size:8px;letter-spacing:2px;color:#a4a491}.pace-bars{display:flex;gap:4px;margin-bottom:7px}.pace-bars i{display:block;width:15px;height:3px;background:#cdc6b82d}.pace-bars i.on{background:#b52920}.journey{display:flex;align-items:center;gap:12px;max-width:360px;flex:1;margin-bottom:3px}.journey>span{font-size:8px;letter-spacing:2px;white-space:nowrap;color:#b2b2a0}.track{height:1px;background:#d5d2bb40;flex:1;position:relative}.track i{position:absolute;left:0;top:0;height:1px;background:#be3125;width:0}.track i:after{content:'';position:absolute;right:0;width:4px;height:4px;top:-1.5px;background:#c34230;transform:rotate(45deg)}.keyboard-hint{font-size:8px;letter-spacing:1px;display:flex;gap:14px;color:#c3c1aeba}.touch-controls{display:none}.textbutton{display:block;background:none;color:#a6a897;margin:20px auto;font-size:11px}#pause-screen,#ending{position:fixed;z-index:20;inset:0;background:#0b0d0bd9;backdrop-filter:blur(10px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px}#pause-screen>p{font-size:9px;letter-spacing:4px;color:#9b9d8b}#pause-screen h2{font-size:26px;font-weight:500;margin:20px 0 35px}#ending h2{font-size:clamp(30px,6vw,78px);line-height:1.4;margin:0 0 15px;letter-spacing:3px}#ending h2 strong{color:#bb2c22}#ending>p:not(.eyebrow){font-size:12px;color:#b2b29e;line-height:1.8}#ending button{margin:25px 0 35px}#ending small{font-size:8px;letter-spacing:4px;color:#7d8470}#loading{position:fixed;z-index:30;inset:0;display:flex;align-items:center;justify-content:center;background:#151613;font-size:12px;letter-spacing:3px}#loading span{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.3}}body.playing header{background:linear-gradient(#090c0a80,transparent)}
@media(max-width:800px){header{padding:22px}.topright{gap:10px}.topright>span{display:none}.intro-content{left:8%;right:8%}.intro-image{background-position:61% center}.intro-shade{background:linear-gradient(90deg,#10110fec,#10110f60),linear-gradient(0deg,#10110f,transparent)}.intro-controls{flex-wrap:wrap;gap:12px}.intro-foot{left:22px;right:22px}.intro-foot span{display:none}.scene-title{top:95px;left:22px}.bottom{left:22px;right:22px;bottom:22px}.keyboard-hint{display:none}.journey{max-width:200px}.touch-controls{display:flex;position:absolute;left:20px;right:20px;bottom:95px;justify-content:space-between;align-items:flex-end;pointer-events:none}.touch-controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;background:#1517146b;border:1px solid #d7d4bd55;backdrop-filter:blur(6px);width:54px;height:54px;font-size:24px}.touch-controls button.pressed{background:#7e261fd4;border-color:#c55a45}.steer{display:flex;gap:8px}.throttle{display:flex;flex-direction:column;gap:8px}.throttle button:first-child{height:72px}.throttle small{display:block;font-size:8px;letter-spacing:1px}#rally-touch{width:45px;height:45px;border-color:#a6483b;color:#e1a294;margin-left:auto;margin-right:18px;font-size:24px}#lyric{bottom:34%;left:10%;right:10%;font-size:18px}#callout{top:42%;letter-spacing:3px}}
@media(prefers-reduced-motion:reduce){.grain{display:none}*{transition:none!important}}

.quickstart{display:inline-block;background:none;border:0;border-bottom:1px solid #aaa18e55;color:#b3ad9b;font-size:10px;padding:9px 0;margin-left:22px;letter-spacing:1px;vertical-align:middle}.quickstart:hover{color:#fff0d8;border-color:#b9392a}@media(max-width:500px){.quickstart{display:block;margin:13px 0 0}}

#command-prompt{position:absolute;pointer-events:auto;bottom:24%;left:50%;transform:translateX(-50%);background:#10120fe0;border:1px solid #c4baa154;padding:16px 28px;color:#e4dbc5;text-align:center;min-width:215px;box-shadow:0 8px 35px #0008}#command-prompt>span{display:block;font-size:9px;letter-spacing:4px;color:#ae4939;margin-bottom:9px}#command-prompt strong{font-size:15px;letter-spacing:3px;font-weight:500}#command-prompt small{display:block;font-size:9px;letter-spacing:2px;color:#9e9c89;margin-top:10px}#command-prompt:hover{border-color:#b5523c;background:#28251aef}@media(max-width:800px){#command-prompt{bottom:32%;padding:13px 20px;min-width:190px}}

@media(max-width:800px){#command-prompt>span{font-size:0}#command-prompt>span:after{content:'TAP';font-size:9px}}

.quickstarts{display:flex;gap:22px;align-items:center;margin-top:12px}.quickstarts .quickstart{margin:0}.modern .pace-bars{opacity:.25}.modern .scene-title{opacity:.82}.modern .scene-title h2{font-size:16px}.modern #rally-touch{font-size:19px}.modern .keyboard-hint{color:#d5ceba}
@media(max-width:500px){.quickstarts{flex-direction:column;align-items:flex-start;gap:4px;margin-top:8px}.quickstarts .quickstart{display:inline-block;margin:0}.intro-content{transform:translateY(-46%)}.edition{margin-top:20px}.intro-controls{margin-top:19px}.modern .scene-title h2{max-width:260px;font-size:15px}.modern .pace{max-width:180px}.modern .pace small{font-size:8px;letter-spacing:1px}}

#army-response{position:absolute;left:50%;bottom:21%;transform:translateX(-50%);text-align:center;opacity:0;color:#dfd3b6;text-shadow:0 2px 15px #000;transition:opacity .12s;white-space:nowrap}#army-response span{display:block;font-size:clamp(13px,1.5vw,20px);font-weight:900;letter-spacing:5px}#army-response small{display:block;margin-top:9px;font-size:9px;letter-spacing:3px;color:#c19478}.modern #army-response{display:none}@media(max-width:800px){#army-response{bottom:29%}#army-response span{letter-spacing:3px}}
/* Edition 010 — Mongolian identity and portrait-first controls */
html,body{font-family:Arial,'Noto Sans',sans-serif;height:100dvh}.brand span{font-size:13px;letter-spacing:2px}.brand small{display:block;margin-top:5px;font-size:6px;letter-spacing:1.5px}.intro-image{background-image:url('assets/camp-v4.webp');filter:brightness(.64) contrast(1.1);opacity:1}.intro-mount{position:absolute;right:-6%;bottom:-4%;width:77%;height:95%;background:url('assets/pov.webp') bottom center/contain no-repeat;filter:brightness(.78)}.intro-shade{background:linear-gradient(90deg,#10110ff2 0%,#10110fe0 27%,#10110f30 70%),linear-gradient(0deg,#10110fa0,transparent 45%)}.intro-content{left:7%;max-width:690px}.fighter-name{font-size:12px;letter-spacing:3px;line-height:1.8;margin:0 0 24px;color:#c8c1ac}.fighter-name strong{font-size:19px;font-weight:500;letter-spacing:4px;color:#e4ddca}h1{font-family:Impact,'Arial Black',Arial,sans-serif;font-size:clamp(66px,8.5vw,130px);letter-spacing:-2px}h1 span{letter-spacing:8px;font-size:11px}.lead{font-size:clamp(16px,1.6vw,22px);line-height:1.65;letter-spacing:0}.primary{position:relative;min-height:62px}.primary small{font-size:8px;letter-spacing:2px;opacity:.7}.eyebrow{margin-bottom:20px}.edition{letter-spacing:2px}.quickstart{font-size:9px;letter-spacing:.8px}.scene-title h2{max-width:min(75vw,540px);font-size:18px;line-height:1.5;letter-spacing:0}.scene-title p{letter-spacing:2px}#callout{max-width:90vw;white-space:normal;text-align:center;line-height:1.4;font-size:clamp(28px,5.5vw,74px)}#identity{position:absolute;top:34%;left:5%;right:5%;text-align:center;opacity:0;pointer-events:none;text-shadow:0 2px 20px #000}#identity small{display:block;font-size:clamp(11px,1.5vw,19px);letter-spacing:5px;margin-bottom:14px}#identity strong{display:block;font-size:clamp(28px,5.5vw,78px);letter-spacing:2px}#identity span{display:block;font-size:9px;letter-spacing:4px;margin-top:15px;color:#c5bca6}#crowd-calls{position:absolute;inset:0;opacity:0;pointer-events:none}#crowd-calls span{position:absolute;top:29%;left:5%;font-size:clamp(12px,1.6vw,22px);font-weight:900;letter-spacing:1.5px;color:#e7e1cf;text-shadow:0 3px 9px #000;transform:rotate(-6deg)}#crowd-calls span:nth-child(2){top:35%;left:auto;right:4%;transform:rotate(5deg)}#crowd-calls span:nth-child(3){top:23%;left:58%;font-size:clamp(10px,1.1vw,16px)}#crowd-calls.answering span{animation:chantWave 1.2s ease-in-out infinite}#crowd-calls.answering span:nth-child(2){animation-delay:.24s}#crowd-calls.answering span:nth-child(3){animation-delay:.48s}@keyframes chantWave{50%{translate:0 -5px;opacity:.65}}#command-prompt strong{font-size:14px;letter-spacing:1px}#army-response span{letter-spacing:2px}.modern #callout{top:48%}.modern #identity+div{z-index:1}.bottom{padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:800px){header{padding:16px max(18px,env(safe-area-inset-left))}.brand img{width:24px;height:30px}.brand span{font-size:11px}.topright button{min-width:44px;min-height:44px;padding:9px}.scene-title{top:82px;left:20px;right:20px}.scene-title p{font-size:8px}.scene-title h2,.modern .scene-title h2{font-size:15px;max-width:90%;margin-top:7px}.intro-content{left:7%;right:7%;top:48%;transform:translateY(-47%)}.fighter-name{font-size:10px;letter-spacing:2px;margin-bottom:17px}.fighter-name strong{font-size:15px;letter-spacing:2px}h1{font-size:clamp(60px,15vw,94px)}h1 span{margin:14px 0 20px}.intro-mount{right:-42%;width:140%;height:72%;bottom:-2%;opacity:.52}.intro-shade{background:linear-gradient(90deg,#10110fea,#10110f70),linear-gradient(0deg,#10110f80,transparent)}.lead{font-size:16px;line-height:1.6}.subtitle{margin:10px 0 19px}.redline{margin:19px 0}.eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:17px}.quickstarts{flex-direction:column;align-items:flex-start;gap:1px}.quickstart{font-size:9px;padding:9px 0}.intro-controls{font-size:8px;gap:12px;margin-top:16px}.edition{font-size:8px;margin-top:18px}.intro-foot{bottom:16px;font-size:7px;left:7%;letter-spacing:1px}.touch-controls{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:calc(58px + env(safe-area-inset-bottom));height:145px;align-items:flex-end;gap:12px}.touch-controls button{width:58px;height:58px;background:#10120fa6;min-width:48px;min-height:48px}.steer{gap:9px}.throttle{position:absolute;left:0;bottom:70px;flex-direction:row;gap:9px}.throttle button:first-child{height:54px}.throttle button{height:54px;font-size:22px}.throttle small{font-size:6px;letter-spacing:0}#rally-touch{width:78px;height:78px;min-width:78px;border-radius:50%;margin:0 0 0 auto;border-color:#b24b39;background:#57221cc9;font-size:30px;box-shadow:0 4px 25px #0006}.modern #rally-touch{font-size:29px}.bottom{bottom:15px;left:18px;right:18px;gap:12px}.pace{min-width:85px}.pace>span{font-size:9px;letter-spacing:1px}.pace small,.modern .pace small{font-size:7px;letter-spacing:.5px}.journey{max-width:190px}.journey>span{font-size:7px;letter-spacing:.6px}#command-prompt{bottom:34%;max-width:80%;min-height:88px}#army-response{bottom:29%;max-width:90%}#army-response span{font-size:15px}#army-response small{font-size:8px;letter-spacing:1px}#crowd-calls span{font-size:12px;top:30%;left:3%;max-width:45%;letter-spacing:.3px}#crowd-calls span:nth-child(2){top:38%;right:3%}#crowd-calls span:nth-child(3){display:none}#identity{top:33%}#identity small{font-size:10px;letter-spacing:3px}#identity strong{font-size:clamp(25px,7.8vw,46px);letter-spacing:0}.modern #callout{top:48%}}
@media(max-height:520px) and (orientation:landscape){.intro-content{top:52%;max-width:75%;transform:translateY(-48%)}.fighter-name{font-size:9px;margin-bottom:10px}.fighter-name strong{font-size:12px}h1{font-size:58px}h1 span{margin:8px 0 12px}.eyebrow,.lead,.subtitle,.edition,.intro-foot{display:none}.redline{margin:12px 0}.primary{min-height:48px;padding:10px 20px}.quickstarts{flex-direction:row;gap:15px;margin-top:5px}.intro-controls{margin-top:10px}.scene-title{top:70px}.touch-controls{bottom:40px;height:110px}.throttle{left:135px;bottom:0}.bottom{bottom:8px}#rally-touch{width:64px;height:64px;min-width:64px}#command-prompt{bottom:31%;min-height:65px;padding:9px 20px}}
@media(max-height:520px) and (orientation:landscape){.keyboard-hint{display:none}.touch-controls{display:flex;position:absolute;left:18px;right:18px;bottom:42px;align-items:flex-end;pointer-events:none;height:100px}.touch-controls button{pointer-events:auto;touch-action:none;user-select:none;background:#151714a0;border:1px solid #d7d4bd55;width:52px;height:52px;font-size:24px}.steer{display:flex;gap:8px}.throttle{display:flex;position:absolute;left:124px;bottom:0;flex-direction:row;gap:8px}.throttle button:first-child{height:52px}.throttle small{display:block;font-size:6px}#rally-touch{margin:0 0 0 auto;width:64px;height:64px;border-radius:50%;border-color:#b24b39;background:#57221cc9;font-size:28px}.bottom{bottom:9px}.scene-title{top:72px}.scene-title h2{font-size:14px}.topright>span{display:none}}
/* Edition 011 — ten seconds of barely contained power */
.intro-image{background-image:url('assets/beast-bound-v11.webp');background-position:center center;filter:brightness(.78) contrast(1.06)}.intro-mount{display:none}.intro-shade{background:linear-gradient(90deg,#080a08d9 0%,#080a08a0 30%,#080a0800 72%),linear-gradient(0deg,#080a0880,transparent 45%)}.intro-content{max-width:650px}.primary{gap:26px;min-width:280px}#beast-caption{display:none;position:absolute;left:6%;right:6%;bottom:13%;text-align:center;color:#e5dcc4;font-weight:900;font-size:clamp(13px,2.2vw,29px);letter-spacing:4px;text-shadow:0 3px 20px #000}.beast-opening #beast-caption{display:block}.beast-opening .scene-title,.beast-opening .bottom,.beast-opening .touch-controls,.beast-opening #army-response,.beast-opening #callout{display:none!important}.beast-opening header{background:linear-gradient(#090b09b0,transparent)}
@media(max-width:800px){.intro-image{background-position:68% center}.intro-shade{background:linear-gradient(0deg,#080a08ec 0%,#080a08a0 45%,#080a0820 86%)}.intro-content{top:55%;transform:translateY(-46%)}.primary{min-width:260px;max-width:100%;font-size:12px}.primary small{font-size:7px;letter-spacing:1px}#beast-caption{bottom:15%;font-size:15px;letter-spacing:2px}.fighter-name{color:#dfd8c2}}
@media(max-height:520px) and (orientation:landscape){.intro-image{background-position:65% center}.intro-content{top:52%;max-width:55%}.primary{min-width:270px}.intro-shade{background:linear-gradient(90deg,#080a08e0,#080a0850 60%,transparent)}#beast-caption{bottom:12%;font-size:16px}}

@media(max-width:800px) and (orientation:portrait){.intro-image{background-position:78% center}}

/* 012: one invitation, then the Khan's brief fictional command. */
#intro .intro-content{top:auto;bottom:15%;transform:none;max-width:560px}#intro h1{font-size:clamp(62px,7.8vw,118px);margin-bottom:34px}#intro h1 span{font-size:10px;letter-spacing:9px;margin:17px 0 0}#intro .primary{min-width:320px;min-height:76px;background:#b4261c;border:1px solid #ec6a4645;box-shadow:0 0 45px #981c1526;font-size:15px}body:not(.playing) .topright{display:none}#intro .intro-foot{font-size:8px;opacity:.65}#khan-command{display:none;position:absolute;left:8%;right:8%;bottom:20%;text-align:center;font-size:9px;letter-spacing:4px;color:#bfb49c;text-shadow:0 2px 12px #000}.beast-opening #khan-command{display:block}#beast-caption{bottom:13%;font-size:clamp(19px,3vw,38px);letter-spacing:3px}#volley-cue{position:absolute;left:50%;top:27%;transform:translateX(-50%);max-width:90%;padding:12px 20px;border-top:1px solid #a24c35;background:linear-gradient(90deg,transparent,#151510d9,transparent);color:#eee3c9;font-weight:700;font-size:clamp(12px,1.4vw,19px);letter-spacing:2px;text-align:center;white-space:nowrap;text-shadow:0 2px 12px #000}#volley-cue[data-stage='dodged']{border-color:#b4ad8c;color:#f0e7cd}#volley-cue[data-stage='glanced']{border-color:#824430}.beast-opening #volley-cue,.modern #volley-cue{display:none!important}
@media(max-width:800px){#intro .intro-content{left:7%;right:7%;bottom:15%;top:auto;transform:none}#intro h1{font-size:clamp(60px,17vw,92px);margin-bottom:28px}#intro h1 span{font-size:10px;margin-top:14px}#intro .primary{min-width:0;width:100%;max-width:360px;min-height:78px;padding:20px;font-size:14px;gap:15px}#intro .intro-foot{bottom:calc(22px + env(safe-area-inset-bottom));line-height:1.7}#khan-command{bottom:23%;font-size:8px;letter-spacing:2px}#beast-caption{bottom:16%;font-size:22px;letter-spacing:1px;line-height:1.5}#volley-cue{top:25%;font-size:12px;padding:12px;letter-spacing:.5px}.steer button{min-width:62px;width:62px}}
@media(max-height:520px) and (orientation:landscape){#intro .intro-content{bottom:14%;left:7%}#intro h1{font-size:57px;margin-bottom:20px}#intro h1 span{margin-top:9px;font-size:8px}#intro .primary{min-height:62px;min-width:290px;width:auto;font-size:13px}#intro .intro-foot{display:none}#khan-command{bottom:24%}#beast-caption{bottom:13%;font-size:22px}#volley-cue{top:25%;font-size:12px}}

/* 014: readable chapter labels and changing call-and-response. */
.scene-title{padding:10px 15px 12px;border-left:1px solid #a04430;background:linear-gradient(90deg,#080b09c2,#080b0900);max-width:min(80vw,600px)}.scene-title p{margin:0 0 7px;color:#d2c8ad}.scene-title h2{margin:0;color:#f0e8d3;text-shadow:0 2px 10px #000;font-weight:600}#callout{width:max-content;max-width:min(88vw,920px);padding:15px 24px 19px;background:radial-gradient(ellipse,#080b09d9,transparent 73%);text-shadow:0 3px 20px #000,1px 1px #73291e;line-height:1.4;letter-spacing:1px!important;overflow-wrap:normal}.modern #callout{top:45%}#army-response{max-width:90%;white-space:normal;width:max-content}#army-response small{font-size:clamp(12px,1.4vw,17px);letter-spacing:1px;line-height:1.5;color:#d6c5a4}
@media(max-width:800px){.scene-title{padding:8px 11px;max-width:88vw}.scene-title h2,.modern .scene-title h2{font-size:16px;line-height:1.4;max-width:100%}.scene-title p{font-size:7px;letter-spacing:1.5px;margin:0 0 6px}#callout{max-width:92vw;padding:15px 12px;top:40%;line-height:1.45}.modern #callout{top:46%}#army-response{bottom:29%;max-width:90%}#army-response small{font-size:12px;line-height:1.4;letter-spacing:.5px}}

/* Edition 015 — One cinematic mobile action button + tilt steering. */
#mobile-menu-trigger,#mobile-menu,#control-guide{display:none}
#mobile-menu-trigger{font-weight:900;letter-spacing:3px;line-height:1;padding:9px 10px}
#mobile-menu{position:absolute;right:20px;top:calc(100% - 8px);width:188px;padding:7px;background:#111410f2;border:1px solid #ab62474d;box-shadow:0 15px 48px #000a;backdrop-filter:blur(15px);border-radius:8px;pointer-events:auto}
#mobile-menu button{display:block;width:100%;padding:15px 13px;background:transparent;border:0;text-align:left;min-height:44px;font-weight:700;letter-spacing:1.5px;font-size:10px;color:#f0e6d3}
#mobile-menu button+button{border-top:1px solid #aaa18e24}
#mobile-menu small{display:block;border-top:1px solid #aaa18e24;text-align:center;color:#a9a18a;letter-spacing:1px;padding:10px 4px 5px;font-size:8px}
#control-guide{pointer-events:none;position:absolute;left:50%;bottom:calc(168px + env(safe-area-inset-bottom));transform:translateX(-50%);border:1px solid #bc917048;background:#0b100bd9;box-shadow:0 8px 28px #0008;padding:10px 14px;color:#efe2ca;border-radius:3px;font-weight:800;font-size:10px;letter-spacing:1.6px;white-space:nowrap;text-shadow:0 1px 5px #000;animation:guideEnter .45s ease-out}
@keyframes guideEnter{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media (max-width:800px), (pointer:coarse){
 .topright>#sound,.topright>#pause,.topright>#chapter{display:none!important}
 .topright{gap:0}
 #mobile-menu-trigger{display:block;border:1px solid #e3ca9b38;border-radius:6px;background:#11150f70;font-size:12px;min-height:36px;min-width:40px}
 #mobile-menu:not([hidden]),#control-guide:not([hidden]){display:block}
 .touch-controls{display:flex;position:absolute;right:max(18px,env(safe-area-inset-right));left:auto;bottom:calc(77px + env(safe-area-inset-bottom));height:auto;align-items:center;justify-content:flex-end;pointer-events:none}
 .touch-controls #rally-touch{pointer-events:auto;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100px;height:100px;min-width:100px;min-height:100px;margin:0;border-radius:50%;color:#ffeed4;background:radial-gradient(ellipse at 31% 24%,#91513d 0%,#4d2018 34%,#270d0c 70%,#120909 100%);border:2px solid #c7966688;box-shadow:inset 0 0 0 4px #0e0b0b, inset 0 0 0 6px #c38d5680, inset 0 10px 24px #ff97631b,0 0 0 3px #120f0f99,0 12px 28px #000b,0 0 25px #9c251a65;transform:translateZ(0);-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:transform .12s ease,filter .12s ease}
 #rally-touch:active{transform:scale(.94);filter:brightness(1.3)}
 #rally-touch:before{content:'';position:absolute;inset:-7px;border:1px solid #f0cb9460;border-radius:50%;box-shadow:0 0 18px #a1342444;pointer-events:none}
 #rally-touch:after{content:'';position:absolute;inset:9px;border:1px dashed #dd9c6266;border-radius:50%;pointer-events:none}
 #rally-touch .rally-glyph{position:relative;z-index:1;line-height:1;font-size:35px;filter:drop-shadow(0 2px 3px #000)}
 #rally-touch .rally-title{position:relative;z-index:1;font-size:9px;letter-spacing:1.6px;font-weight:900;white-space:nowrap;text-shadow:0 2px 3px #000;color:#f0ceab}
 #rally-touch .rally-accent{position:absolute;z-index:2;bottom:13px;left:39px;width:20px;height:2px;background:linear-gradient(90deg,transparent,#e9aa7a,transparent)}
 #rally-touch.fired{animation:rallyFired .45s ease-out}
 @keyframes rallyFired{0%{filter:brightness(1.65);box-shadow:0 0 0 2px #d9a775,0 0 40px #b9402aaa}100%{filter:brightness(1)}}
 .modern #rally-touch .rally-glyph{font-size:34px}
 .modern #rally-touch .rally-title{font-size:7px;letter-spacing:.4px}
 .keyboard-hint{display:none}
}
@media (max-height:520px) and (orientation:landscape){
 .touch-controls{bottom:calc(34px + env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right));left:auto;height:auto}
 .touch-controls #rally-touch{width:80px;height:80px;min-width:80px;min-height:80px}
 #rally-touch .rally-glyph{font-size:27px}
 #rally-touch .rally-title{font-size:8px}
 #control-guide{bottom:calc(124px + env(safe-area-inset-bottom))}
}
@media (max-width:800px) and (orientation:portrait){
 #control-guide{bottom:calc(202px + env(safe-area-inset-bottom))}
}

@media (min-width:801px) and (pointer:fine){.touch-controls{display:none!important}}
@media (max-height:520px) and (orientation:landscape){.touch-controls #rally-touch .rally-glyph{font-size:27px}}

/* Edition 015.2 — mobile comfort and clear sword field of view */
@media (max-width:800px), (pointer:coarse){
 .touch-controls{left:max(19px,env(safe-area-inset-left));right:auto;bottom:calc(90px + env(safe-area-inset-bottom));justify-content:flex-start}
 .touch-controls #rally-touch{width:76px;height:76px;min-width:76px;min-height:76px;margin:0;border-width:1.5px;box-shadow:inset 0 0 0 3px #0e0b0b,inset 0 0 0 5px #c38d564a,0 7px 20px #000a,0 0 18px #9c251a55}
 #rally-touch:before{inset:-5px}
 #rally-touch:after{inset:8px}
 #rally-touch .rally-glyph{font-size:25px}
 #rally-touch .rally-title{font-size:7px;letter-spacing:1px}
 #rally-touch .rally-accent{bottom:9px;left:31px;width:14px}
 #control-guide{bottom:calc(178px + env(safe-area-inset-bottom))}
}
@media (max-height:520px) and (orientation:landscape){
 .touch-controls{left:max(17px,env(safe-area-inset-left));right:auto;bottom:calc(24px + env(safe-area-inset-bottom))}
 .touch-controls #rally-touch{width:65px;height:65px;min-width:65px;min-height:65px}
 #control-guide{bottom:calc(105px + env(safe-area-inset-bottom))}
}

/* V16 — mobile-first authored art and stable, user-selectable control. */
.intro-control-choice,.mobile-edition{display:none}
@media (max-width:800px) and (orientation:portrait), (pointer:coarse) and (orientation:portrait){
 .intro-image{background-image:url('assets/mobile-v16/intro-portrait.webp')!important;background-position:center center!important;filter:brightness(.78) contrast(1.12)}
 .intro-shade{background:linear-gradient(0deg,#090b09fa 0%,#090b09a0 45%,#080a0870 78%,#06080628)}
 .intro-content{bottom:19%!important;top:auto!important;transform:none!important;left:7%;right:7%}
 #intro h1{font-size:clamp(64px,19vw,98px);letter-spacing:-2px;line-height:.86;margin-bottom:20px}
 #intro h1 span{font-size:10px;letter-spacing:6px}
 .mobile-edition{display:block;color:#edd3bd;font-size:9px;letter-spacing:2px;font-weight:800;margin-bottom:17px;text-shadow:0 2px 7px #000}
 .intro-control-choice{display:flex;gap:8px;margin-bottom:16px}
 .intro-control-choice button{flex:1;min-height:52px;padding:9px 12px;background:#080908ca;border:1px solid #a49c8c4d;text-align:left;color:#e5dccc;letter-spacing:1.6px;font-size:13px;font-weight:800;border-radius:3px}
 .intro-control-choice button[aria-pressed=true]{border-color:#d54532;background:#771b16b8;box-shadow:inset 0 0 0 1px #d545324a}
 .intro-control-choice button span{display:block;margin-top:4px;font-weight:400;font-size:9px;letter-spacing:.3px;color:#d0beb0}
 #intro .primary{min-height:65px;font-weight:900}
 .scene-title{top:70px;max-width:65%;background:linear-gradient(90deg,#080b09c7,#080b0900)}
 #callout{top:32%;font-size:clamp(20px,5.9vw,35px)!important;max-width:92vw}
 #army-response{bottom:33%}
 .bottom{bottom:12px;left:18px;right:15px;opacity:.86}
 .touch-controls{left:18px!important;right:14px!important;bottom:calc(62px + env(safe-area-inset-bottom))!important;width:auto;height:auto;display:flex;align-items:flex-end;justify-content:space-between!important;gap:16px}
 .touch-controls #rally-touch{order:1;width:72px!important;height:72px!important;min-height:72px!important;min-width:72px!important;opacity:.96}
 .touch-controls #rally-touch .rally-glyph{font-size:25px}
 #steering-buttons{order:2;display:none;gap:7px;align-items:center;pointer-events:auto}
 body[data-control=touch] #steering-buttons{display:flex}
 #steering-buttons button{display:flex;justify-content:center;align-items:center;width:52px;height:52px;border-radius:50%;background:#0d0e0cb8;border:1px solid #f0e4cc85;color:#efecdb;font-size:32px;line-height:1;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 5px 14px #0008}
 #steering-buttons button.held,#steering-buttons button:active{background:#8e281fce;border-color:#edd0a5}
 #control-guide{bottom:calc(175px + env(safe-area-inset-bottom))}
}
@media (max-height:520px) and (orientation:landscape) and (pointer:coarse){
 #steering-buttons{display:none;align-items:center;gap:5px;pointer-events:auto}
 body[data-control=touch] #steering-buttons{display:flex}
 #steering-buttons button{width:48px;height:48px;min-width:48px;border:1px solid #eee8d06e;border-radius:50%;background:#10110fba;font-size:28px;touch-action:none}
 .touch-controls{right:15px!important;left:18px!important;justify-content:space-between!important}
 #steering-buttons{order:2}.touch-controls #rally-touch{order:1}
}
@media (max-width:800px),(pointer:coarse){
 #mobile-menu{width:234px;max-height:min(70vh,470px);overflow:auto}
 #mobile-menu .mode-menu{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:9px 3px;border-top:1px solid #aaa18e24}
 #mobile-menu .mode-menu button{margin:0;min-height:66px;border:1px solid #5a51465e;padding:9px 6px;text-align:center;font-size:11px;letter-spacing:1px}
 #mobile-menu .mode-menu button[aria-pressed=true]{border-color:#b73326;background:#691d17d6}
 #mobile-menu .mode-menu small{margin-top:3px;padding:3px 0 0;border:0}
 #mobile-menu #recalibrate{font-size:10px;color:#e2c8a9}
}
#steering-buttons{display:none}
/* V16.1 touch arrows: small, translucent and centred low, clear of the sword arm. */
@media (max-width:800px) and (orientation:portrait), (pointer:coarse) and (orientation:portrait){
 #steering-buttons{position:absolute;left:calc(50% - 54px);bottom:0;gap:8px}
 #steering-buttons button{width:44px;height:44px;min-width:44px;min-height:44px;font-size:26px;background:#0c0e0ba8;border-color:#c9c7b48c;opacity:.88}
}

/* v16.1: mythic JELME art is the intentional identity, not a realism error. */
/* v17: clear primary start and compact optional steering choice. */
@media(max-width:800px) and (orientation:portrait), (pointer:coarse) and (orientation:portrait){#intro .intro-content{bottom:max(8%,calc(28px + env(safe-area-inset-bottom)))!important;left:7%;right:7%}#intro h1{font-size:clamp(54px,16vw,80px);margin-bottom:20px}#intro h1 span{margin-top:11px}.mobile-edition{font-size:8px;letter-spacing:1px;margin-bottom:15px}.intro-control-choice{gap:8px;margin-bottom:12px}.intro-control-choice button{min-height:52px;padding:9px 11px;font-size:11px}.intro-control-choice button span{font-size:9px}#intro .primary{width:100%;min-height:74px;display:flex;justify-content:space-between;padding:18px 20px;background:#bc241e;border:1px solid #e96c4a88;box-shadow:0 8px 30px #0009;font-size:15px;font-weight:900;letter-spacing:1px}#intro .primary small{font-size:8px;letter-spacing:1px}.intro-foot{bottom:14px;font-size:7px}.intro-foot span{display:none}}
@media(max-width:800px) and (orientation:portrait), (pointer:coarse) and (orientation:portrait){
 .intro-image{background-image:url('assets/mobile-v16/beast-jelme-user.webp')!important;background-position:52% 20%!important;filter:brightness(.80) contrast(1.08)!important}
 .intro-shade{background:linear-gradient(0deg,#080807fa 0%,#080807d5 23%,#0808073d 52%,#08080712 80%)!important}
 .intro-content{bottom:15%!important}
 .intro-control-choice button{font-size:12px;letter-spacing:0!important}
 .intro-control-choice button span{line-height:1.35;font-size:10px}
 .mobile-edition{font-size:9px;letter-spacing:1.2px}
 .scene-title{max-width:81%;padding:13px 16px 14px!important;border-left:3px solid #ae2720!important;background:linear-gradient(90deg,#080708e8,#080708bd 70%,transparent)!important;box-shadow:0 9px 32px #0005}
 .scene-title p{font-size:9px!important;font-weight:900;letter-spacing:.14em!important;color:#d55b49!important}
 .scene-title h2{font-size:clamp(19px,6.2vw,34px)!important;line-height:1.2!important;color:#fff7df!important;font-weight:900!important;letter-spacing:.01em;text-shadow:0 2px 5px #000,0 5px 30px #9d140d55!important}
 #chapter{letter-spacing:.8px!important}
}

/* v18: right-thumb action, no redundant speed dashboard. */
.bottom .pace{display:none!important}
@media(max-width:800px),(pointer:coarse){.touch-controls{left:max(18px,env(safe-area-inset-left))!important;right:max(20px,env(safe-area-inset-right))!important;bottom:calc(24px + env(safe-area-inset-bottom))!important;width:auto!important;justify-content:flex-end!important;align-items:flex-end!important}.touch-controls #rally-touch{order:2!important;margin:0 0 0 auto!important;align-self:flex-end}.bottom{pointer-events:none;bottom:14px;left:20px;right:116px}.bottom .journey{max-width:240px}#steering-buttons{position:absolute;order:1;left:calc(50% - 48px)!important;bottom:0!important;margin:0}.modern .touch-controls #rally-touch{margin-left:auto!important}#control-guide{bottom:calc(125px + env(safe-area-inset-bottom))}}
@media(max-height:520px) and (orientation:landscape){.touch-controls{bottom:calc(18px + env(safe-area-inset-bottom))!important;right:max(20px,env(safe-area-inset-right))!important}.bottom{right:116px}.bottom .journey{max-width:200px}}
