:root{--night:#080504;--paper:#fff0d0;--sand:#d5b982;--red:#e4261d;--fire:#ff5a2d;--sun:#ffd76b;--line:rgba(255,240,208,.22);--glass:rgba(8,5,4,.64);--safe-bottom:max(14px,env(safe-area-inset-bottom))}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--night);color:var(--paper);font-family:Arial,Helvetica,sans-serif;touch-action:none}button,a{font:inherit;color:inherit}button{cursor:pointer}a{text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--sun);outline-offset:3px}.hidden{display:none!important}canvas{position:fixed;inset:0;width:100%;height:100%;display:block;background:#0c0806}.texture{position:fixed;z-index:4;inset:0;pointer-events:none;opacity:.055;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 baseFrequency='.86' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.game-header{position:fixed;z-index:10;top:0;left:0;right:0;padding:max(13px,env(safe-area-inset-top)) 18px 8px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:900;letter-spacing:.17em;text-transform:uppercase;text-shadow:0 3px 15px #000;pointer-events:auto}.brand svg{width:31px;fill:var(--fire)}.header-actions{display:flex;gap:7px;pointer-events:auto}.round-button{width:39px;height:39px;border:1px solid var(--line);border-radius:50%;background:rgba(8,5,4,.72);backdrop-filter:blur(14px);display:grid;place-items:center;font-weight:900;box-shadow:0 6px 22px #0004}.round-button:hover{border-color:var(--sun);background:rgba(73,22,13,.84)}
.hud{position:fixed;z-index:9;top:70px;left:18px;display:grid;grid-template-columns:repeat(3,max-content);gap:7px;pointer-events:none}.hud-stat{min-width:84px;padding:8px 11px;border:1px solid var(--line);border-radius:13px;background:var(--glass);backdrop-filter:blur(13px);box-shadow:0 8px 28px #0003}.hud-stat span,.hud-stat strong{display:block}.hud-stat span{color:var(--sand);font-size:7px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.hud-stat strong{margin-top:3px;font-size:15px}.distance-stat,.combo-stat{min-width:110px}.journey-progress{position:fixed;z-index:9;top:0;left:0;right:0;height:2px;background:#fff1}.journey-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--red),var(--sun));box-shadow:0 0 15px var(--fire)}
.scene-card{position:fixed;z-index:9;top:73px;left:50%;transform:translateX(-50%);padding:8px 13px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;background:var(--glass);backdrop-filter:blur(13px);pointer-events:none;opacity:.82}.scene-card>span{color:var(--fire);font:bold 18px Impact,sans-serif}.scene-card strong,.scene-card small{display:block}.scene-card strong{font-size:9px;letter-spacing:.13em;text-transform:uppercase}.scene-card small{margin-top:2px;color:var(--sand);font:italic 9px Georgia,serif}.scene-card.reveal{animation:sceneReveal 1.4s ease}@keyframes sceneReveal{0%{opacity:0;transform:translate(-50%,-12px)}25%,80%{opacity:1;transform:translate(-50%,0)}}
.challenge-toast{position:fixed;z-index:15;top:132px;left:50%;transform:translate(-50%,-20px);padding:10px 15px;border:1px solid #ffd46c66;border-radius:999px;background:#48190ed9;color:var(--sun);font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;opacity:0;pointer-events:none}.challenge-toast.show{animation:challenge 2s ease}@keyframes challenge{20%,75%{opacity:1;transform:translate(-50%,0)}}.game-toast{position:fixed;z-index:14;left:50%;top:43%;transform:translate(-50%,-50%) scale(.8);font:clamp(32px,8vw,78px)/1 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;color:var(--sun);text-shadow:0 0 30px var(--fire),0 6px 25px #000;opacity:0;pointer-events:none;white-space:nowrap}.game-toast.pop{animation:gameToast .62s ease-out}@keyframes gameToast{15%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}100%{opacity:0;transform:translate(-50%,-68%) scale(1.2)}}
.speed-flash{position:fixed;z-index:8;inset:0;pointer-events:none;background:rgba(255,212,108,.0);opacity:0}.speed-flash.active{animation:speedFlash .4s ease}@keyframes speedFlash{0%{background:rgba(255,212,108,.08)}100%{background:rgba(255,212,108,0)}}
.touch-controls{position:fixed;z-index:9;left:50%;bottom:var(--safe-bottom);transform:translateX(-50%);display:none;grid-template-columns:repeat(4,54px);gap:8px}.touch-controls button{height:54px;border:1px solid var(--line);border-radius:17px;background:rgba(8,5,4,.64);backdrop-filter:blur(11px);font-size:20px;font-weight:bold}.touch-controls button:active{background:rgba(187,56,37,.75);transform:scale(.94)}
.loading-screen{position:fixed;z-index:40;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(circle at 50% 70%,#5d1b0e55,transparent 42%),#080504}.loading-screen strong{font-size:11px;letter-spacing:.2em;text-transform:uppercase}.loading-screen small{color:var(--sand);font-size:9px;letter-spacing:.1em}.loader-mark{position:relative;width:76px;height:62px}.loader-mark span{position:absolute;width:42px;height:38px;clip-path:polygon(50% 0,100% 100%,80% 100%,50% 24%,20% 100%,0 100%);background:var(--red);filter:drop-shadow(0 0 18px #ff5a2d88)}.loader-mark span:nth-child(1){left:17px}.loader-mark span:nth-child(2){left:0;top:23px;transform:scale(.7)}.loader-mark span:nth-child(3){right:0;top:23px;transform:scale(.7)}.loader-track{width:min(280px,70vw);height:2px;background:#fff2}.loader-track i{display:block;width:0;height:100%;background:var(--fire);transition:width .2s}
.overlay,.pause-screen{position:fixed;z-index:30;inset:0;padding:18px;display:grid;place-items:center;background:rgba(4,3,2,.72);backdrop-filter:blur(12px);overflow:auto}.start-card,.end-card{width:min(1040px,100%);max-height:calc(100svh - 36px);display:grid;grid-template-columns:1.08fr .92fr;overflow:auto;border:1px solid rgba(228,38,29,.48);border-radius:30px;background:linear-gradient(145deg,rgba(27,15,10,.97),rgba(7,5,4,.99));box-shadow:0 38px 130px #000}.start-visual{position:relative;min-height:590px;overflow:hidden;background:linear-gradient(0deg,rgba(5,3,2,.82),transparent 55%),url("../assets/game/environment-highveld.webp") center/cover}.start-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(9,5,4,.5))}.hero-character{position:absolute;z-index:2;left:50%;bottom:-3%;width:min(440px,82%);aspect-ratio:1.249;background-image:url("../assets/game/character-run-a.png");background-size:400% 200%;background-position:0 0;transform:translateX(-50%);filter:drop-shadow(0 18px 30px #000)}.start-title{position:absolute;z-index:3;left:24px;bottom:24px;text-shadow:0 5px 24px #000}.start-title>span,.start-title>small{display:block;font-size:8px;font-weight:900;letter-spacing:.2em;text-transform:uppercase}.start-title>span{color:var(--sun)}.start-title>strong{display:block;margin:9px 0;font:clamp(58px,7vw,96px)/.73 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:-.04em}.start-title em{font-style:normal;color:var(--fire)}.start-title>small{color:var(--sand)}.start-copy,.end-copy{padding:clamp(27px,4vw,52px);align-self:center}.start-copy h1,.end-copy h2,.pause-screen h2{margin:14px 0;font:clamp(48px,6vw,80px)/.8 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:-.035em}.start-copy>p{margin:0;color:var(--sand);font:15px/1.62 Georgia,serif}.control-hint{margin:18px 0;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff1}.control-hint p{margin:0 0 7px;color:var(--red);font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0}.rule-grid>div{padding:8px 5px;border:1px solid #fff4;border-radius:8px;text-align:center;background:#0004}.rule-grid kbd{display:inline-grid;place-items:center;min-width:28px;height:23px;margin:0 1px;border:1px solid #fff4;border-radius:4px;background:#000;font:8px Arial;font-weight:bold}.rule-grid span{display:block;margin-top:5px;color:var(--sand);font-size:6px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.challenge-panel{padding:13px 15px;border-left:2px solid var(--red);background:#0003}.challenge-panel span,.challenge-panel strong{display:block}.challenge-panel span{color:var(--sand);font-size:8px;letter-spacing:.12em;text-transform:uppercase}.challenge-panel strong{margin-top:5px;font-size:18px}.button-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:21px}.primary-button,.secondary-button,.text-button{min-height:48px;padding:0 19px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:900}.primary-button{border:0;background:linear-gradient(135deg,var(--red),#68150e);box-shadow:0 12px 30px #a32d1b3d}.secondary-button{border:1px solid var(--line);background:#fff1}.text-button{padding:0 8px;color:var(--sand);font-size:10px;text-transform:uppercase;letter-spacing:.11em}.primary-button:hover,.secondary-button:hover{transform:translateY(-2px);border-color:var(--sun)}
.pause-screen{z-index:25;text-align:center}.pause-screen>div{padding:40px;border:1px solid var(--line);border-radius:28px;background:#100a07e8}.pause-screen .text-button{display:flex;margin:14px auto 0}.end-card{grid-template-columns:.8fr 1.2fr}.end-art{position:relative;min-height:570px;overflow:hidden;background:linear-gradient(0deg,rgba(5,3,2,.9),transparent 55%),url("../assets/game/environment-dawn.webp") center/cover}.end-character{position:absolute;left:50%;bottom:-2%;width:min(430px,92%);aspect-ratio:1.249;background-image:url("../assets/game/character-run-a.png");background-size:400% 200%;background-position:0 0;transform:translateX(-50%);filter:drop-shadow(0 20px 35px #000)}.end-art>span{position:absolute;z-index:2;top:20px;left:20px;font:clamp(80px,12vw,165px)/.8 Impact,sans-serif;color:var(--sun);text-shadow:0 6px 28px #000}.final-score{margin:18px 0}.final-score span,.final-score strong{display:block}.final-score span{color:var(--sand);font-size:8px;letter-spacing:.14em;text-transform:uppercase}.final-score strong{margin-top:5px;font:clamp(68px,10vw,126px)/.8 Impact,sans-serif;color:var(--sun)}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:20px 0;background:var(--line);border:1px solid var(--line)}.result-grid>div{padding:13px;background:#110b08}.result-grid span,.result-grid strong{display:block}.result-grid span{color:var(--sand);font-size:7px;letter-spacing:.12em;text-transform:uppercase}.result-grid strong{margin-top:4px;font-size:17px}.end-message{margin:0;color:var(--sand);font:13px/1.4 Georgia,serif}
.rotate-notice{display:none}.reduced-motion *{animation:none!important;transition:none!important}
@media(max-width:820px){.game-header{padding-left:10px;padding-right:10px}.brand span{display:none}.header-actions{gap:5px}.round-button{width:36px;height:36px}.hud{top:57px;left:8px;gap:4px;grid-template-columns:repeat(3,max-content)}.hud-stat{min-width:70px;padding:6px 8px}.hud-stat span{font-size:6px}.hud-stat strong{font-size:13px}.distance-stat,.combo-stat{min-width:88px}.scene-card{top:100px;left:8px;transform:none;padding:6px 9px}.scene-card.reveal{animation:none}.scene-card small{display:none}.touch-controls{display:grid}.overlay{padding:8px;align-items:start}.start-card,.end-card{grid-template-columns:1fr;max-height:calc(100svh - 16px);border-radius:22px}.start-visual{min-height:215px;height:29svh}.hero-character{width:min(300px,64%);left:62%}.start-title{left:16px;bottom:16px}.start-title>strong{font-size:52px}.start-copy,.end-copy{padding:20px}.start-copy h1,.end-copy h2{font-size:44px;margin:10px 0}.start-copy>p{font-size:13px}.control-hint{margin:12px 0;padding:10px}.rule-grid{gap:5px}.rule-grid>div{padding:6px 4px}.challenge-panel{padding:9px 11px}.button-row{margin-top:14px}.primary-button,.secondary-button{min-height:44px;padding:0 15px;font-size:12px}.end-art{min-height:200px;height:26svh}.end-character{width:min(290px,63%);left:60%}.end-art>span{font-size:80px}.final-score{margin:12px 0}.final-score strong{font-size:70px}.result-grid{margin:12px 0}.end-message{font-size:12px}.challenge-toast{top:142px}.game-toast{top:38%}}
@media(max-width:430px){.rule-grid{grid-template-columns:repeat(2,1fr)}.start-visual{min-height:180px;height:25svh}.start-title>strong{font-size:44px}.start-copy h1,.end-copy h2{font-size:38px}.start-copy{padding:17px}.touch-controls{grid-template-columns:repeat(4,48px)}.touch-controls button{height:48px}.result-grid>div{padding:9px}.button-row{gap:6px}.text-button{width:100%;min-height:34px}}
@media(max-height:650px) and (orientation:landscape){.start-card,.end-card{grid-template-columns:.9fr 1.1fr}.start-visual,.end-art{min-height:calc(100svh - 36px);height:auto}.start-copy,.end-copy{padding:20px}.start-copy h1,.end-copy h2{font-size:43px}.challenge-panel{padding:8px 10px}.button-row{margin-top:10px}.touch-controls{left:auto;right:12px;transform:none;grid-template-columns:repeat(4,44px)}.touch-controls button{height:44px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.combat-hud{position:fixed;z-index:18;top:66px;left:50%;width:min(820px,calc(100% - 36px));transform:translateX(-50%);display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:22px;pointer-events:none;filter:drop-shadow(0 8px 22px #000)}
.fighter-status span,.fighter-status strong,.fighter-status small{display:block}.fighter-status span{color:var(--sand);font-size:7px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.fighter-status strong{margin:3px 0 7px;font:22px/1 Impact,"Arial Narrow",sans-serif;letter-spacing:.04em;text-transform:uppercase}.fighter-status>i{display:block;height:8px;border:1px solid #fff4;background:#120a08;overflow:hidden;transform:skewX(-12deg)}.fighter-status>i>b{display:block;width:100%;height:100%;background:linear-gradient(90deg,#8e2418,var(--fire),var(--sun));transition:width .18s ease}.fighter-status small{margin-top:5px;color:#dac9aa;font-size:7px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase}.fighter-status small em{font-style:normal;color:var(--paper)}.fighter-status .stamina-track{height:3px;margin-top:4px;border:0;background:#fff2}.fighter-status .stamina-track b{background:linear-gradient(90deg,#8ea177,#e6d6a8)}.enemy-status{text-align:right}.enemy-status>i{transform:skewX(12deg)}.enemy-status>i>b{margin-left:auto;background:linear-gradient(90deg,var(--sun),var(--fire),#8e2418)}
.round-mark{padding-top:2px;text-align:center}.round-mark span,.round-mark strong{display:block}.round-mark span{color:var(--sun);font-size:7px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.round-mark strong{margin-top:4px;font:25px/1 Impact,sans-serif;text-transform:uppercase;color:#fff0d0;text-shadow:0 0 24px #d44228}
.combat-callout{position:fixed;z-index:19;left:50%;top:43%;transform:translate(-50%,-50%);width:min(760px,90vw);padding:22px;text-align:center;pointer-events:none;text-shadow:0 5px 24px #000}.combat-callout span,.combat-callout strong,.combat-callout small{display:block}.combat-callout span{color:var(--sun);font-size:9px;font-weight:900;letter-spacing:.25em;text-transform:uppercase}.combat-callout strong{margin:7px 0;font:clamp(62px,11vw,135px)/.76 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;color:var(--paper)}.combat-callout small{color:var(--sand);font:italic 14px Georgia,serif}.combat-callout.announce{animation:fightCallout 1.75s ease both}@keyframes fightCallout{0%{opacity:0;transform:translate(-50%,-44%) scale(1.14)}18%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-55%) scale(.96)}}
.combat-controls{position:fixed;z-index:20;left:50%;bottom:var(--safe-bottom);transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,minmax(82px,120px));gap:10px}.combat-controls button{height:60px;border:1px solid var(--line);border-radius:17px;background:rgba(8,5,4,.74);backdrop-filter:blur(12px);font-weight:900;text-transform:uppercase;box-shadow:0 8px 24px #0006}.combat-controls span,.combat-controls small{display:block}.combat-controls span{font-size:10px;letter-spacing:.1em}.combat-controls small{margin-top:4px;color:var(--sand);font-size:8px}.combat-controls button:active,.combat-controls button.active{border-color:var(--sun);background:rgba(131,39,25,.86);transform:translateY(2px)}
@media(max-width:820px){.combat-hud{top:58px;width:calc(100% - 16px);gap:8px}.fighter-status strong{font-size:16px}.fighter-status>i{height:6px}.round-mark strong{font-size:17px}.round-mark span{font-size:6px}.combat-callout{top:38%}.combat-callout strong{font-size:56px}.combat-controls{grid-template-columns:repeat(3,minmax(75px,100px));gap:7px}.combat-controls button{height:52px}}
@media(max-width:430px){.combat-hud{top:54px}.fighter-status strong{font-size:14px}.fighter-status span{font-size:6px}.fighter-status small{font-size:6px}.round-mark strong{font-size:14px}.combat-controls{grid-template-columns:repeat(3,84px)}}

.run-config{display:grid;grid-template-columns:1.4fr .8fr;gap:10px;margin:18px 0 10px}.run-config>div{padding:10px;border:1px solid var(--line);border-radius:13px;background:#0003}.run-config>div>span{display:block;margin-bottom:7px;color:var(--sand);font-size:7px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.run-choice{display:flex;gap:5px}.run-choice button{min-height:32px;flex:1;padding:4px 7px;border:1px solid var(--line);border-radius:8px;background:#fff1;color:var(--sand);font-size:7px;font-weight:900;text-transform:uppercase}.run-choice button.selected{border-color:var(--sun);background:#6c2115;color:var(--paper)}
.mission-panel{margin-top:10px;padding:12px 14px;border-left:2px solid #ffd274;background:rgba(0,0,0,.2);box-shadow:inset 0 0 20px rgba(0,0,0,.14)}.mission-panel span,.mission-panel strong,.mission-panel small{display:block}.mission-panel span{color:#cdb48a;font-size:7px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.mission-panel strong{margin-top:4px;font-size:13px;text-transform:uppercase}.mission-panel strong:after{content:" / Second Wind at 8 sigils";color:#ffd274;font-size:10px;margin-left:6px}.mission-panel small{margin-top:4px;color:#cdb48a;font:italic 11px/1.35 Georgia,serif}

@media(max-width:600px){.run-config{grid-template-columns:1fr;margin-top:12px}.run-choice button{min-height:29px;font-size:6px}}
