.training-page .desktop-nav a.active{color:var(--green)}.training-page .desktop-nav a.active:after{background:var(--green)}
.training-page main{overflow:clip}.training-page em{font-style:normal;color:var(--green)}
.training-hero{height:100svh;min-height:720px;position:relative;overflow:hidden;isolation:isolate;padding:120px 4vw 38px;background:var(--bg)}
.training-hero-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(103,232,249,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(103,232,249,.045) 1px,transparent 1px);background-size:9vw 9vw;mask-image:linear-gradient(90deg,black,transparent)}
.training-label,.panel-top,.step-number{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--cyan)}.training-label{position:relative;z-index:5}
.training-hero-art{position:absolute;right:-5%;top:11%;width:62%;height:72%;overflow:hidden;clip-path:polygon(11% 0,100% 0,100% 89%,89% 100%,0 100%,0 16%);background:#234781;animation:training-art-in 1s .12s cubic-bezier(.2,.8,.2,1) both}
.training-hero-sky,.control-demo-sky,.move-world-sky,.jump-sky,.dodge-sky{position:absolute;inset:0;background:url('source_assets/images/level1_tiledbackground.png') center / cover no-repeat}.training-hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,11,16,.4),transparent 72%)}
.hero-art-platform{position:absolute;width:44%;right:4%;top:52%;filter:drop-shadow(10px 14px 8px rgba(0,0,0,.3))}.hero-art-player{position:absolute;width:36%;left:20%;top:19%;z-index:1;filter:drop-shadow(10px 16px 8px rgba(0,0,0,.3))}.training-hero-art>span{position:absolute;z-index:2;bottom:24px;right:8%;font-size:10px;font-weight:700;letter-spacing:.18em}
.training-hero h1{position:absolute;z-index:3;left:4vw;top:21%;margin:0;font:400 clamp(150px,20vw,340px)/.72 var(--font-display);letter-spacing:-.025em;pointer-events:none}.training-hero h1>span{display:block;white-space:nowrap;animation:training-title-in .85s cubic-bezier(.2,.8,.2,1) both}.training-hero h1>span:nth-child(2){margin-left:9vw;animation-delay:.15s}.green-period{color:var(--green)}
.training-hero-bottom{position:absolute;z-index:5;left:4vw;right:4vw;bottom:38px;display:flex;align-items:end;justify-content:space-between;gap:30px;animation:training-fade .7s .7s both}.training-hero-bottom p{font-size:15px;line-height:1.5;margin:0}.training-hero-bottom a{font-size:11px;font-weight:700;letter-spacing:.16em;border-bottom:1px solid var(--green);padding-bottom:11px;display:flex;gap:40px;transition:gap .25s}.training-hero-bottom a:hover{gap:60px}.training-hero-bottom a span{color:var(--green);font-size:19px;line-height:.5}.training-hero-bottom>span{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--muted)}.hero-draw-line{position:absolute;z-index:4;bottom:18%;left:4vw;width:34%;height:1px;background:var(--cyan);transform-origin:left;animation:training-line-in .8s .45s both}
.training-flow{position:relative;background:#080b10}.motion-spine{position:absolute;z-index:3;top:0;bottom:0;left:4vw;width:1px;background:rgba(103,232,249,.15);pointer-events:none}.motion-spine-fill{width:100%;height:0;background:var(--cyan);box-shadow:0 0 10px rgba(103,232,249,.35)}
.training-panel{position:relative;padding-left:8vw;padding-right:4vw;overflow:hidden}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;z-index:4}.panel-top>span:last-child{color:#a6b8c7;font-size:10px}.panel-top:before{content:'';position:absolute;left:-4vw;top:.5em;width:4vw;height:1px;background:var(--cyan)}
.control-lab{padding-top:120px;padding-bottom:160px;min-height:980px;background:#0a0f17}.control-layout{display:grid;grid-template-columns:50% 50%;align-items:center;gap:2vw;min-height:560px}.control-cluster{position:relative;width:100%;max-width:690px;padding:40px 20px 55px}.arrow-cluster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,140px);gap:10px}.control-key{border:1px solid rgba(103,232,249,.42);background:#0e1721;color:var(--white);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:100px;line-height:1;transition:transform .16s,background .16s,color .16s,border-color .16s,box-shadow .16s;touch-action:manipulation}.control-key:hover,.control-key.is-pressed{background:var(--green);color:var(--bg);border-color:var(--green);transform:translateY(5px);box-shadow:0 0 0 5px rgba(57,255,20,.08)}.key-up{grid-column:2;grid-row:1}.key-left{grid-column:1;grid-row:2}.key-down{grid-column:2;grid-row:2}.key-right{grid-column:3;grid-row:2}.key-space{width:100%;height:86px;margin-top:14px;font-size:43px;justify-content:space-between;padding:0 25px}.key-space span{font:700 11px var(--font-body);letter-spacing:.16em}.control-hint{display:block;margin-top:20px;color:var(--cyan);font-size:10px;font-weight:700;letter-spacing:.16em}.control-copy{position:relative}.control-copy h2,.move-heading h2,.jump-copy h2,.dodge-heading h2,.survive-step h2,.training-recap h2,.tips h2,.training-final h2{font:400 clamp(125px,16vw,275px)/.75 var(--font-display);letter-spacing:-.025em;margin:0}.control-copy p{font-size:13px;line-height:2.2;letter-spacing:.08em;margin:38px 0 0}.control-copy p strong{font-weight:500;margin-left:22px}.control-side-label{position:absolute;right:8%;top:0;writing-mode:vertical-rl;font-size:9px;letter-spacing:.17em;color:var(--muted)}
.control-demo{position:relative;height:255px;overflow:hidden;clip-path:polygon(3% 0,100% 0,100% 83%,94% 100%,0 100%,0 10%);border-top:1px solid rgba(103,232,249,.3);background:#244785}.control-demo-sky{background-position:center 53%}.control-demo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,11,16,.55),transparent 48%)}.demo-path{position:absolute;left:5%;right:5%;bottom:26%;height:1px;background:rgba(103,232,249,.65)}.demo-path:after{content:'→';position:absolute;right:0;top:-18px;color:var(--green);font-size:30px}.demo-platform{position:absolute;width:65%;max-width:670px;left:18%;bottom:10%}.demo-player{position:absolute;z-index:2;width:160px;left:calc(50% - 80px);bottom:16%;transition:translate .25s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(8px 12px 6px rgba(0,0,0,.4))}.control-demo[data-action="ArrowLeft"] .demo-player{translate:-75px 0}.control-demo[data-action="ArrowRight"] .demo-player{translate:75px 0}.control-demo[data-action="ArrowUp"] .demo-player{translate:0 -24px}.control-demo[data-action="ArrowDown"] .demo-player{translate:0 12px}.control-demo[data-action="Space"] .demo-player{animation:demo-jump .55s cubic-bezier(.2,.6,.3,1)}.demo-readout{position:absolute;z-index:3;left:20px;bottom:18px;font-size:10px;font-weight:700;letter-spacing:.17em}
.move-step{height:190vh;padding-top:0;padding-bottom:0;background:#080b10}.move-step>.panel-top{position:absolute;top:95px;left:8vw;right:4vw}.move-sticky{height:100svh;min-height:700px;position:sticky;top:0;padding-top:110px;display:flex;flex-direction:column;justify-content:center;gap:50px}.move-heading{position:relative;z-index:2}.move-heading h2{font-size:clamp(160px,22vw,370px);white-space:nowrap}.move-heading h2 span,.jump-copy h2 span,.dodge-heading h2 span,.survive-step h2 span{color:var(--green)}.move-heading p,.jump-copy p,.dodge-heading p{font-size:15px;line-height:1.5;margin:10px 0 0 8px}.move-world{height:340px;position:relative;overflow:hidden;clip-path:polygon(4% 0,100% 0,100% 84%,94% 100%,0 100%,0 9%);background:#244785}.move-world-sky{background-position:center 60%}.move-direction{position:absolute;left:8%;top:10%;font:400 95px var(--font-display);color:rgba(103,232,249,.6);letter-spacing:1.2em;white-space:nowrap;animation:direction-drift 13s linear infinite}.move-platform{position:absolute;width:72%;left:14%;bottom:12%;filter:drop-shadow(10px 14px 8px rgba(0,0,0,.35))}.move-player{position:absolute;width:190px;left:18%;bottom:17%;filter:drop-shadow(10px 13px 8px rgba(0,0,0,.35));will-change:translate}.move-trace{position:absolute;z-index:2;left:13%;right:14%;bottom:10%;height:2px;background:rgba(103,232,249,.35)}.move-trace span{display:block;width:0;height:100%;background:var(--green)}.scene-caption{position:absolute;right:25px;bottom:22px;font-size:10px;font-weight:700;letter-spacing:.18em}
.jump-step{min-height:100vh;padding-top:110px;padding-bottom:130px;background:#0a0f17}.jump-layout{min-height:780px;display:grid;grid-template-columns:46% 54%;align-items:center;gap:1vw}.jump-copy{position:relative;z-index:2}.jump-copy h2{font-size:clamp(160px,20vw,340px);white-space:nowrap}.jump-space{width:min(390px,80%);height:95px;margin-top:48px;padding:0 25px;justify-content:space-between;font-size:62px}.jump-space span{font-size:35px}.jump-diagram{height:680px;position:relative;overflow:hidden;clip-path:polygon(10% 0,100% 0,100% 90%,86% 100%,0 100%,0 13%);background:#244785}.jump-sky{background-position:58% center}.jump-diagram:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,11,16,.3),transparent 40%)}.jump-arc{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible}.jump-arc path{fill:none;stroke:var(--cyan);stroke-width:2;stroke-dasharray:10 10;opacity:.75}.jump-platform{position:absolute;width:44%;filter:drop-shadow(10px 15px 10px rgba(0,0,0,.3))}.jp-lower{left:-4%;bottom:15%}.jp-upper{right:0;top:24%}.jump-player{position:absolute;z-index:3;width:32%;left:36%;top:42%;filter:drop-shadow(10px 14px 8px rgba(0,0,0,.4));will-change:translate}.jump-arrow{position:absolute;z-index:3;right:8%;bottom:14%;font:400 110px var(--font-display);color:var(--green)}.jump-marker{position:absolute;z-index:3;left:25px;top:22px;font-size:10px;letter-spacing:.18em;font-weight:700}
.jump-diagram.is-jumping .jump-player{animation:jump-tap .6s cubic-bezier(.2,.6,.3,1)}
.dodge-step{min-height:106vh;padding-top:115px;padding-bottom:140px;background:#080b10}.dodge-heading{position:relative;z-index:3;margin:90px 0 35px 2vw}.dodge-heading h2{font-size:clamp(150px,21vw,340px)}.dodge-corridor{height:420px;position:relative;overflow:hidden;clip-path:polygon(3% 0,100% 0,100% 87%,96% 100%,0 100%,0 10%);background:#244785}.dodge-sky{filter:brightness(.77)}.dodge-corridor:after{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,rgba(8,11,16,.45),transparent 50%)}.dodge-platform,.dodge-player,.dodge-enemy,.dodge-warning{position:absolute;filter:drop-shadow(8px 11px 7px rgba(0,0,0,.3));transition:translate .5s}.dodge-platform{width:34%;bottom:12%}.dodge-left{left:-3%}.dodge-right{right:-4%;bottom:22%}.dodge-player{width:22%;left:39%;top:18%;z-index:3}.dodge-enemy{width:9%;right:14%;top:18%;z-index:2}.dodge-warning{width:5%;right:19%;bottom:18%;z-index:2}.safe-route{position:absolute;inset:0;width:100%;height:100%;z-index:4;overflow:visible}.safe-route path{fill:none;stroke:var(--cyan);stroke-width:2;stroke-dasharray:1000;stroke-dashoffset:1000;filter:drop-shadow(0 0 4px rgba(103,232,249,.5))}.corridor-label{position:absolute;z-index:4;bottom:25px;font-size:10px;font-weight:700;letter-spacing:.18em}.corridor-start{left:4%}.corridor-go{right:6%;color:var(--green)}
.survive-step{min-height:110vh;padding-top:130px;padding-bottom:160px;background:#0b111a;text-align:center;display:flex;flex-direction:column;align-items:center}.survive-step>.panel-top{width:100%}.survive-words{margin-top:90px;display:flex;justify-content:center;gap:3vw;font:400 clamp(50px,8vw,130px)/1 var(--font-display);color:#879cac;white-space:nowrap;will-change:transform}.survive-words span:nth-child(even){color:var(--cyan)}.survive-step h2{font-size:clamp(150px,23vw,390px);margin:20px 0 35px}.survive-main-copy{font-size:18px;line-height:1.5;margin:0}.objective-strip{display:flex;align-items:center;justify-content:center;gap:35px;margin-top:65px;padding:25px 45px;border-top:1px solid rgba(103,232,249,.35);border-bottom:1px solid rgba(103,232,249,.35)}.objective-strip>div{display:flex;align-items:center;gap:15px}.objective-strip img{width:38px;height:38px;object-fit:contain;image-rendering:pixelated}.objective-strip span{font-size:11px;font-weight:700;letter-spacing:.18em}.objective-strip .objective-join{font:400 40px var(--font-display);color:var(--green)}.survive-small-copy{font-size:13px;color:#b7c4d0;margin:30px 0 0}
.training-recap{min-height:90vh;padding-top:115px;padding-bottom:120px;background:#080b10}.training-recap h2{font-size:clamp(130px,18vw,300px);margin:95px 0 80px}.recap-track{position:relative;margin:0 4vw 0 2vw;padding:0 0 60px}.recap-line{height:2px;background:rgba(103,232,249,.35);position:relative}.recap-line:before,.recap-line:after{content:'';position:absolute;top:-5px;width:12px;height:12px;border-radius:50%;border:1px solid var(--cyan)}.recap-line:before{left:0}.recap-line:after{right:0}.recap-line span{display:block;width:0;height:100%;background:var(--green)}.recap-runner{position:absolute;left:0;top:-100px;width:125px;translate:-50% 0;will-change:left}.recap-runner img{width:100%;filter:drop-shadow(8px 10px 5px rgba(0,0,0,.4))}.recap-points{display:flex;justify-content:space-between;margin-top:28px;gap:15px}.recap-points span{font-size:11px;font-weight:700;letter-spacing:.15em}.training-recap>p{font-size:14px;color:#bac7d2;margin-top:45px}
.tips{padding-top:125px;padding-bottom:150px;background:#0a0f17}.tips h2{font-size:clamp(125px,16vw,270px);margin:65px 0 95px}.tips-list{max-width:1100px;margin-left:auto}.tips-list>div{display:grid;grid-template-columns:12% 42% 1fr auto;align-items:baseline;gap:20px;border-top:1px solid rgba(103,232,249,.3);padding:27px 12px;transition:padding .25s,background .25s}.tips-list>div:last-child{border-bottom:1px solid rgba(103,232,249,.3)}.tips-list>div:hover{padding-left:28px;background:rgba(103,232,249,.035)}.tips-list b{font:400 54px var(--font-display);color:var(--green)}.tips-list span{font:400 45px var(--font-display)}.tips-list p{font-size:13px;line-height:1.5;color:#b9c6d2}.tips-list i{font:400 34px var(--font-display);font-style:normal;color:var(--cyan)}
.training-final{min-height:100svh;padding:115px 4vw 55px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:#0b111a}.training-final:before{content:'';position:absolute;width:75vw;aspect-ratio:1;border:1px solid rgba(103,232,249,.15);border-radius:50%;right:-23vw;top:-25vw;box-shadow:0 0 0 12vw rgba(37,99,235,.025),0 0 0 25vw rgba(37,99,235,.018)}.training-final>.section-meta{color:var(--cyan)}.training-final h2{font-size:clamp(130px,20vw,350px);position:relative;z-index:2}.training-final-bottom{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:end;gap:30px}.training-final .play-button{width:min(450px,42vw)}.training-final-bottom>a{font-size:11px;font-weight:700;letter-spacing:.16em;border-bottom:1px solid var(--cyan);padding-bottom:12px;transition:color .2s}.training-final-bottom>a:hover{color:var(--green)}.training-final-side{position:absolute;right:16px;top:45%;writing-mode:vertical-rl;font-size:9px;letter-spacing:.18em;color:var(--muted)}
@keyframes training-art-in{from{opacity:0;clip-path:polygon(40% 35%,80% 35%,80% 65%,65% 65%,40% 65%,40% 35%);scale:.96}to{opacity:1;clip-path:polygon(11% 0,100% 0,100% 89%,89% 100%,0 100%,0 16%);scale:1}}@keyframes training-title-in{from{opacity:0;transform:translateX(-10vw)}to{opacity:1;transform:translateX(0)}}@keyframes training-fade{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes training-line-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes demo-jump{0%,100%{translate:0 0}45%{translate:0 -60px}}@keyframes direction-drift{to{translate:15% 0}}
@keyframes jump-tap{0%,100%{transform:translateY(0)}45%{transform:translateY(-65px)}}
@media(max-width:1100px){.training-hero h1{font-size:19vw}.control-copy h2{font-size:15vw}.move-heading h2{font-size:21vw}.jump-copy h2{font-size:20vw}.dodge-heading h2{font-size:20vw}.survive-step h2{font-size:22vw}.tips h2{font-size:15vw}.training-final h2{font-size:19vw}.arrow-cluster{grid-template-rows:repeat(2,110px)}.control-key{font-size:80px}}
@media(max-width:700px){.training-page main{overflow:clip}.training-hero{min-height:760px;height:100svh;padding:100px 20px 25px}.training-label{font-size:10px}.training-hero-art{top:20%;right:-30%;width:125%;height:50%}.hero-art-player{width:40%;left:35%;top:19%}.hero-art-platform{width:54%;right:8%;top:57%}.training-hero h1{font-size:clamp(118px,27vw,210px);top:34%;left:20px}.training-hero h1>span:nth-child(2){margin-left:8vw}.training-hero-bottom{left:20px;right:20px;bottom:27px;align-items:end}.training-hero-bottom p{font-size:12px}.training-hero-bottom a{font-size:9px;gap:8px}.training-hero-bottom>span{display:none}.hero-draw-line{left:20px;bottom:20%;width:60%}.motion-spine{left:19px}.training-panel{padding-left:45px;padding-right:20px}.panel-top{font-size:9px}.panel-top>span:last-child{font-size:8px}.panel-top:before{left:-26px;width:26px}.control-lab{min-height:0;padding-top:85px;padding-bottom:100px}.control-layout{display:flex;flex-direction:column-reverse;min-height:0;gap:20px;align-items:stretch;margin-top:48px}.control-copy h2{font-size:clamp(105px,24vw,170px)}.control-copy p{font-size:11px;margin:20px 0}.control-copy p strong{margin-left:8px}.control-side-label{display:none}.control-cluster{padding:15px 0 45px;max-width:500px}.arrow-cluster{grid-template-rows:repeat(2,86px);gap:8px}.control-key{font-size:58px}.key-space{height:75px;font-size:40px;padding:0 16px}.key-space span{font-size:9px}.control-hint{font-size:8px}.control-demo{height:205px}.demo-platform{width:100%;left:0;bottom:16%}.demo-player{width:125px;left:calc(50% - 62px);bottom:16%}.move-step{height:auto;padding-top:85px;padding-bottom:100px}.move-step>.panel-top{position:relative;top:auto;left:auto;right:auto}.move-sticky{height:auto;min-height:0;position:relative;padding-top:0;display:block}.move-heading{margin:70px 0 25px}.move-heading h2{font-size:clamp(120px,27vw,200px)}.move-heading p,.jump-copy p,.dodge-heading p{font-size:12px;margin-left:0}.move-world{height:255px}.move-platform{width:115%;left:-7%;bottom:20%}.move-player{width:115px;left:10%;bottom:25%}.move-direction{font-size:50px}.scene-caption{font-size:8px}.jump-step{padding-top:90px;padding-bottom:110px;min-height:0}.jump-layout{display:block;min-height:0}.jump-copy{margin:85px 0 30px}.jump-copy h2{font-size:clamp(120px,28vw,210px)}.jump-space{height:75px;margin-top:25px;font-size:42px;width:100%}.jump-diagram{height:470px}.jump-player{width:44%;left:31%;top:38%}.jump-platform{width:52%}.jump-arrow{font-size:75px}.dodge-step{padding-top:90px;padding-bottom:115px;min-height:0}.dodge-heading{margin:85px 0 25px}.dodge-heading h2{font-size:clamp(110px,27vw,200px)}.dodge-corridor{height:330px}.dodge-platform{width:54%}.dodge-player{width:40%;left:33%;top:25%}.dodge-enemy{width:18%;right:8%;top:18%}.dodge-warning{width:10%;right:17%;bottom:20%}.corridor-label{font-size:8px}.survive-step{min-height:0;padding-top:100px;padding-bottom:125px}.survive-words{margin-top:90px;gap:9px;font-size:clamp(36px,10vw,70px)}.survive-step h2{font-size:clamp(110px,25vw,200px);margin:35px 0}.survive-main-copy{font-size:14px}.objective-strip{gap:10px;padding:20px 4px;margin-top:50px;width:100%}.objective-strip>div{gap:4px;flex-direction:column}.objective-strip img{width:30px;height:30px}.objective-strip span{font-size:9px}.objective-strip .objective-join{font-size:28px}.survive-small-copy{font-size:11px}.training-recap{min-height:0;padding-top:95px;padding-bottom:105px}.training-recap h2{font-size:clamp(105px,23vw,190px);margin:75px 0 100px}.recap-track{margin:0 8px 0 0;padding-bottom:20px}.recap-runner{width:85px;top:-72px}.recap-points{gap:4px;margin-top:18px}.recap-points span{font-size:8px;letter-spacing:0}.training-recap>p{font-size:12px}.tips{padding-top:90px;padding-bottom:120px}.tips h2{font-size:clamp(100px,22vw,180px);margin:65px 0}.tips-list>div{grid-template-columns:45px 1fr auto;gap:9px;padding:20px 5px}.tips-list b{font-size:40px}.tips-list span{font-size:33px}.tips-list p{grid-column:2;grid-row:2;font-size:11px;margin:0}.tips-list i{grid-column:3;grid-row:1;font-size:26px}.training-final{min-height:760px;min-height:100svh;padding:90px 20px 35px}.training-final h2{font-size:clamp(105px,23vw,185px)}.training-final-bottom{display:block}.training-final .play-button{width:100%;min-height:120px}.training-final-bottom>a{display:inline-block;margin-top:28px}.training-final-side{display:none}}
@media(max-width:390px){.training-hero h1{font-size:26vw}.training-hero-bottom p{font-size:11px}.control-copy h2{font-size:23vw}.move-heading h2,.jump-copy h2,.dodge-heading h2{font-size:25vw}.survive-step h2{font-size:24vw}.training-recap h2,.training-final h2{font-size:22vw}.tips h2{font-size:21vw}.tips-list span{font-size:30px}}
@media(prefers-reduced-motion:reduce){.training-hero-art,.training-hero h1>span,.training-hero-bottom,.hero-draw-line{animation:none!important}.control-key,.demo-player,.dodge-platform,.dodge-player,.dodge-enemy,.dodge-warning{transition:none!important}.move-direction{animation:none!important}.safe-route path{stroke-dashoffset:0!important}.motion-spine-fill{height:100%!important}}
@media(prefers-reduced-motion:reduce){.jump-diagram.is-jumping .jump-player{animation:none!important}}
