﻿/* Reference-matched illustrated dojo, isolated from the site theme. */
body.ninja-game-mode{background:#2b130e;color:#f6e9ce}.ninja-game-mode>.header,.ninja-game-mode>.footer{display:none}.ninja-game-mode #main{max-width:none;padding:0;margin:0;width:100%}.ninja-page{--ink:#241c1b;--wood:#87462b;--cream:#f7e7c4;min-height:100svh;background:#30170f;color:var(--cream);font-family:Georgia,'Times New Roman',serif}.ninja-heading{height:54px;padding:0 26px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(#401c0e,#261008);border-bottom:5px solid #140c08}.ninja-heading h1{margin:0;font-size:19px;letter-spacing:1px;color:#f7e7c4}.ninja-heading a{font:600 12px Arial,sans-serif;color:#f7e7c4;text-decoration:none;padding:8px 0}.ninja-heading a:hover{color:#ffd65b}.ninja-heading a:focus-visible,.ninja-page button:focus-visible{outline:3px solid #f6c546;outline-offset:4px}
.ninja-arena{position:relative;min-height:calc(100svh - 54px);padding:0 0 12px;background:repeating-linear-gradient(0deg,transparent 0 52px,#302c2580 53px 57px),repeating-linear-gradient(90deg,#d2c6ae 0 83px,#403b31 84px 87px,#e0d6c4 88px 170px);border-bottom:12px solid #1e100b;isolation:isolate}.ninja-arena::before,.ninja-arena::after{content:'';position:absolute;top:0;bottom:0;width:22px;background:linear-gradient(90deg,#35190e,#9c5937 34%,#6b321b 75%,#27120b);border-left:3px solid #27140e;border-right:3px solid #27140e;z-index:3;pointer-events:none}.ninja-arena::before{left:166px}.ninja-arena::after{right:166px}.ninja-stage{height:calc(100svh - 265px);min-height:350px;position:relative;margin:0 188px;background:#e28c95 url('/assets/ninja/dojo-background.png') center center/cover no-repeat;border:4px solid #21130f;border-top:0;overflow:hidden;isolation:isolate}.ninja-stage::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 35px #2e151b38;pointer-events:none;z-index:0}.ninja-balcony{position:absolute;left:0;right:0;bottom:0;height:18%;z-index:1;border-top:8px solid #ad8864;border-bottom:12px solid #995633;background:repeating-linear-gradient(90deg,transparent 0 105px,#4d2d1b 106px 111px,#c5a17c 112px 116px,transparent 117px 122px);box-shadow:0 -3px 0 #412b20,0 -6px 0 #e4c3a0}
.ninja-hud{display:contents}.ninja-score-board,.ninja-combo-board,.ninja-wave-board{position:absolute;left:17px;width:132px;text-align:center;z-index:4;background:repeating-linear-gradient(0deg,#914a36 0 40px,#713125 41px 43px);border:3px solid #f8e4c2;border-radius:18px;box-shadow:0 4px 0 #442113,inset 0 0 18px #30140d77;padding:24px 9px 13px}.ninja-wave-board{top:31px}.ninja-score-board{top:159px}.ninja-combo-board{top:287px}.ninja-hud small{position:absolute;left:12px;right:12px;top:-16px;background:#a65332;border:3px solid #f5dfbc;border-radius:20px;padding:7px 2px;font-weight:bold;font-size:13px;color:#fff4d8;text-shadow:1px 2px #3c1a10;letter-spacing:1px}.ninja-hud b{font:900 28px 'Courier New',monospace;color:#fff7e3;text-shadow:2px 2px #2c160f;font-variant-numeric:tabular-nums;display:block}.ninja-wave-board b{font-size:21px;padding:4px 0}.ninja-health{position:absolute;right:20px;top:91px;width:127px;z-index:4;color:#351e17;font:700 11px Arial,sans-serif;text-align:center}.ninja-health>span{display:flex;justify-content:space-between;align-items:center}.ninja-health span b{font-size:12px;color:#412419;text-shadow:none}.ninja-health progress{display:block;width:100%;height:13px;margin:9px 0;border:2px solid #482a1c;border-radius:3px;accent-color:#81aa42;background:#f8dfb4}.ninja-health progress::-webkit-progress-bar{background:#e5c7a0}.ninja-health progress::-webkit-progress-value{background:linear-gradient(#8bc45a,#5f983c)}.ninja-hearts{display:flex;justify-content:center;gap:3px;color:#b92f46;font-size:24px;text-shadow:1px 2px #592020}.ninja-hearts span.empty{color:#715c51}#ninja-pause{position:absolute;z-index:4;right:23px;top:22px;width:121px;background:#f7e5c1;border:3px solid #4c2b1a;border-radius:8px;color:#382217;box-shadow:0 4px #6d391f;font:700 12px Arial,sans-serif;padding:10px}.ninja-page button:disabled{opacity:.55;cursor:wait}
.ninja-hero{position:absolute;z-index:2;left:5%;bottom:15%;width:78px;color:#262033;filter:drop-shadow(3px 5px 0 #4d334466)}.ninja-hero svg{display:block;width:100%}.ninja-slash{position:absolute;right:-50px;top:-15px;font-size:100px;color:#fff4c8;text-shadow:0 0 12px #fff;opacity:0}.ninja-enemy{position:absolute;z-index:2;transform:translateX(-50%);text-align:center;transition:left .75s linear;max-width:85%}.ninja-word{position:relative;display:inline-flex;white-space:nowrap;border:3px solid #4f291b;border-radius:4px;background:repeating-linear-gradient(175deg,#b6794c 0 12px,#a56a42 13px 16px,#bf8252 17px 32px);padding:11px 16px;box-shadow:0 4px 0 #482519,inset 0 0 0 3px #d4a273,inset 0 0 12px #5c301c;font:900 clamp(17px,2.3vw,29px) 'Courier New',monospace;letter-spacing:1px;text-transform:uppercase;color:#fff1d3;text-shadow:2px 2px #28180f,-1px -1px #28180f}.ninja-word::before,.ninja-word::after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#4c2b1a;top:5px;box-shadow:0 30px #4c2b1a}.ninja-word::before{left:5px}.ninja-word::after{right:5px}.ninja-word .correct{color:#ea6684}.ninja-enemy.targeted .ninja-word{outline:3px solid #ffdf8b;outline-offset:3px}.ninja-enemy-kind{display:block;font:700 9px Arial,sans-serif;letter-spacing:.4px;margin-top:8px;color:#fff7df;text-shadow:1px 1px 2px #241b1b;background:#39241bd9;border-radius:10px;padding:3px 8px;width:max-content;max-width:100%;margin-left:auto;margin-right:auto}.ninja-enemy-body{display:none}.ninja-enemy-fast .ninja-word{border-color:#6e2a29;transform:rotate(-3deg)}.ninja-enemy-armored .ninja-word{border-width:5px;box-shadow:0 4px #482519,inset 0 0 0 3px #d8bf97}.ninja-enemy-boss .ninja-word{background:repeating-linear-gradient(175deg,#8b2c2f 0 12px,#a43e40 13px 18px,#963034 19px 32px);font-size:33px;box-shadow:0 5px #401c16,inset 0 0 0 3px #dca465}.ninja-enemy-boss .ninja-enemy-kind{background:#72282c;color:#fff0bb}
.ninja-console{position:relative;z-index:4;min-height:189px;text-align:center;padding:16px 190px 9px;background:linear-gradient(#633322dd,#743a22dd),repeating-linear-gradient(0deg,transparent 0 40px,#332f2780 41px 45px);border-top:8px solid #341a10;box-shadow:inset 0 4px #b97a4c}.ninja-keycaps{display:flex;align-items:center;justify-content:center;gap:5px;min-height:57px;flex-wrap:wrap;margin-bottom:9px}.ninja-key{display:flex;align-items:center;justify-content:center;min-width:43px;height:52px;padding:0 8px;border:3px solid #2f1b11;border-radius:10px;background:linear-gradient(135deg,#fff4d4,#e5c994);box-shadow:0 5px #b28354,inset 0 -5px #d5b282;font:900 34px 'Courier New',monospace;color:#1c1816;text-shadow:1px 1px #fff9e8}.ninja-key.correct{background:linear-gradient(#eeb788,#d98375);box-shadow:0 3px #854530;color:#712b32;transform:translateY(2px)}.ninja-key.current{outline:3px solid #ffd25c;outline-offset:2px}.ninja-key-hint{font:500 13px Arial,sans-serif;color:#efcba2}.ninja-console label{display:block;font:600 10px Arial,sans-serif;color:#ffe6bb}.ninja-console input{display:block;width:100%;max-width:430px;height:33px;margin:5px auto 8px;padding:5px 12px;background:#f5e9d2;border:2px solid #331b10;border-radius:6px;color:#39251c;font:600 17px 'Courier New',monospace;box-shadow:inset 0 2px 3px #6b422933}.ninja-console input:focus{outline:2px solid #ffd364;outline-offset:2px}.ninja-console input:disabled{opacity:.5}.ninja-live-metrics{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;font:600 9px Arial,sans-serif;letter-spacing:.6px;color:#edc8a2}.ninja-live-metrics b{font-size:13px;color:#fff2d4;margin-left:4px}.ninja-console p{margin:4px 0 0;font:10px/1.5 Arial,sans-serif;color:#e7c6a4}#ninja-feedback{color:#fff2d4;min-height:15px}
.ninja-overlay{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:25px;background:#291a13de;text-align:center;overflow:auto}.ninja-overlay[hidden]{display:none}.ninja-overlay h2{font-size:36px;color:#fff0d0;margin:0}.ninja-overlay p{color:#f5dfba;font:13px/1.5 Arial,sans-serif;max-width:580px;margin:4px 0}.ninja-overlay .button{border:3px solid #4c2c1d;border-radius:9px;background:#efc879;color:#38251d;box-shadow:0 5px #6e3d25;font:700 14px Arial,sans-serif;padding:12px 24px}.ninja-overlay .button.secondary{background:#f0ddbc}.ninja-overlay .eyebrow{color:#f1cb85}.ninja-overlay .tiny{font-size:10px}.ninja-results{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;max-width:570px;width:100%;padding:18px 10px;background:#f7e8c511;border:1px solid #eac39166;border-radius:9px}.ninja-results b{display:block;font:800 25px 'Courier New',monospace;color:#ffe1a0}.ninja-results small{display:block;font:10px Arial,sans-serif;color:#f1d7b8}
.ninja-panels{max-width:1150px;margin:0 auto;padding:35px 24px;display:grid;grid-template-columns:1.2fr 1fr;gap:22px;font-family:Arial,sans-serif}.ninja-panels .card{background:#f5e8cd;color:#38271f;border:3px solid #8b5735;border-radius:10px;box-shadow:0 5px #160e09}.ninja-panels h2{font-family:Georgia,serif;font-size:23px;color:#38271f}.ninja-panels p{font-size:12px;line-height:1.6}.ninja-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ninja-summary b{display:block;font-size:22px;color:#73422c}.ninja-summary small{display:block;font-size:10px;color:#6d5a4a}.ninja-board{list-style:none;padding:0;counter-reset:ninja}.ninja-board li{counter-increment:ninja;display:flex;align-items:center;gap:12px;border-bottom:1px solid #bfa786;padding:12px 0}.ninja-board li::before{content:counter(ninja,decimal-leading-zero);font-size:12px;color:#876144}.ninja-board li>span{flex:1}.ninja-board b{font-size:13px}.ninja-board small{display:block;font-size:10px;color:#6d5a4a}.ninja-board strong{color:#964c2c;font-size:16px}.ninja-history{list-style:none;padding:0;font-size:11px}.ninja-history li{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;border-bottom:1px solid #c8b496;padding:8px 0}.ninja-history small{color:#6d5a4a}.ninja-panels details{margin-top:15px}.ninja-panels summary{cursor:pointer;font-size:12px;color:#87482b}
/* White and gold title screen from the supplied Ninja Typing reference. */
.ninja-intro{background:#fbfaf7;color:#242a35}.ninja-intro .ninja-heading{background:#fbfaf7;border:0;color:#242a35}.ninja-intro .ninja-heading h1,.ninja-intro .ninja-heading a{color:#242a35}.ninja-intro .ninja-arena{min-height:calc(100svh - 54px);margin:0 22px 22px;border:2px solid #242a35;border-radius:15px;background:#fbfaf7;overflow:hidden}.ninja-intro .ninja-arena::before,.ninja-intro .ninja-arena::after,.ninja-intro .ninja-hud,.ninja-intro .ninja-console,.ninja-intro .ninja-hero,.ninja-intro .ninja-balcony{display:none}.ninja-intro .ninja-stage{position:static;margin:0;background:none;border:0;height:calc(100svh - 84px);min-height:520px}.ninja-intro .ninja-stage::after{display:none}.ninja-intro .ninja-overlay{display:grid;grid-template-columns:1.3fr 1fr;gap:0;text-align:left;background:#fbfaf7;padding:5vw 5vw 5vw 6vw;overflow:hidden}.ninja-intro-copy{position:relative;z-index:2}.ninja-intro .ninja-intro-kicker{font:700 clamp(12px,1.5vw,21px) Arial,sans-serif;color:#242a35;max-width:none;margin:0 0 22px}.ninja-intro-kicker>span{font-size:40px;vertical-align:middle;margin-right:12px}.ninja-intro-copy h2{font:900 clamp(50px,7.8vw,122px)/.94 Arial,sans-serif;letter-spacing:-5px;color:#232934;margin:0}.ninja-intro-copy h2 span,.ninja-intro-copy h2 em{display:block}.ninja-intro-copy h2 em{font-style:normal;color:#efb92c;font-size:.75em;margin-top:12px;letter-spacing:-4px}.ninja-intro-subtitle{display:flex;align-items:center;gap:22px;letter-spacing:9px;font:italic 700 clamp(13px,1.8vw,26px) Arial,sans-serif;margin:30px 0 38px;color:#242a35}.ninja-intro-subtitle::before,.ninja-intro-subtitle::after{content:'';height:3px;background:#242a35;flex:1}.ninja-intro-features{display:flex;max-width:620px;margin-bottom:33px}.ninja-intro-features>span{flex:1;border-right:1px solid #d7d6d2;text-align:center;font:600 11px/1.4 Arial,sans-serif;color:#242a35;padding:0 12px}.ninja-intro-features>span:first-child{padding-left:0}.ninja-intro-features>span:last-child{border:0}.ninja-intro-features b{display:block;font:900 33px Arial,sans-serif;min-height:43px}.ninja-intro .button{border:0;background:#242a35;border-radius:36px;box-shadow:none;color:#fff;font-size:19px;min-width:310px;padding:19px 31px}.ninja-intro .button>span{color:#f4c735;font-size:27px;vertical-align:middle;margin-right:12px}.ninja-intro .ninja-intro-note{font:11px Arial,sans-serif;color:#717377;margin:15px 0 0 24px}.ninja-intro-art{position:relative;min-width:0;align-self:center;z-index:1}.ninja-intro-art::before{content:'';position:absolute;inset:9% 0 12%;border-radius:50%;background:#fce4a0}.ninja-intro-art img{position:relative;display:block;width:116%;max-width:none;margin-left:-5%;filter:drop-shadow(0 22px 5px #252d3a10)}
.ninja-attack .ninja-slash{animation:ninja-slash .45s ease-out}.ninja-attack .ninja-hero{animation:ninja-strike .45s ease-out}.ninja-hit .ninja-stage{animation:ninja-hurt .45s}.ninja-error .ninja-console input{border-color:#fa9999}.ninja-card-art{background:linear-gradient(135deg,#e6a1a4,#86442d);display:grid;place-items:center}.ninja-card-sigil{font-size:100px;line-height:1;color:#f5dfad;text-shadow:5px 5px #56271b}.ninja-card-art .game-category{position:absolute;top:20px;left:20px}@keyframes ninja-slash{20%{opacity:1;transform:rotate(-25deg) scale(1.2)}100%{opacity:0;transform:rotate(35deg) translateX(80px)}}@keyframes ninja-strike{40%{transform:translateX(32px) rotate(8deg)}}@keyframes ninja-hurt{30%,70%{box-shadow:inset 0 0 100px #d72e5699}}
@media(max-width:1050px){.ninja-stage{margin:0 137px}.ninja-arena::before{left:115px}.ninja-arena::after{right:115px}.ninja-score-board,.ninja-wave-board,.ninja-combo-board{left:10px;width:96px}.ninja-hud small{font-size:10px;left:5px;right:5px}.ninja-hud b{font-size:24px}.ninja-wave-board b{font-size:17px}.ninja-health{right:9px;width:101px}.ninja-health>span{font-size:9px}.ninja-health span b{font-size:10px}#ninja-pause{right:10px;width:100px}.ninja-console{padding-left:140px;padding-right:140px}.ninja-key{min-width:35px;height:45px;font-size:27px;padding:0 5px}.ninja-intro .ninja-overlay{padding:5vw 4vw}.ninja-intro-copy h2{letter-spacing:-3px}.ninja-intro-features>span{font-size:9px;padding:0 8px}.ninja-intro .button{min-width:270px;font-size:16px}.ninja-intro-subtitle{letter-spacing:6px;margin:23px 0}.ninja-intro-art img{width:125%;margin-left:-12%}}
@media(max-width:700px){.ninja-heading{height:45px;padding:0 12px;gap:8px}.ninja-heading h1{font-size:13px;letter-spacing:0}.ninja-heading a{font-size:9px}.ninja-record-link{max-width:72px;text-align:right}.ninja-arena{min-height:calc(100svh - 45px);padding-top:104px}.ninja-arena::before{left:0;width:9px}.ninja-arena::after{right:0;width:9px}.ninja-stage{height:clamp(230px,40svh,370px);min-height:0;margin:0 15px;border-width:2px}.ninja-wave-board,.ninja-score-board,.ninja-combo-board{top:24px;width:70px;left:17px;border-width:2px;border-radius:10px;padding:16px 4px 8px}.ninja-score-board{left:96px}.ninja-combo-board{left:175px}.ninja-hud small{font-size:8px;top:-12px;padding:4px 0;border-width:2px;left:3px;right:3px}.ninja-hud b,.ninja-wave-board b{font-size:17px;padding:0}.ninja-health{top:74px;left:18px;right:auto;width:162px;display:flex;gap:8px;align-items:center}.ninja-health>span{min-width:71px;font-size:8px;gap:4px}.ninja-health>span b{font-size:9px}.ninja-health progress{height:9px;margin:0}.ninja-hearts{display:none}#ninja-pause{top:23px;right:17px;width:58px;font-size:9px;padding:8px 1px;border-width:2px}.ninja-hero{width:52px;left:3%;bottom:12%}.ninja-enemy{max-width:87%}.ninja-word{font-size:17px;letter-spacing:0;padding:8px 11px;border-width:2px}.ninja-word::before,.ninja-word::after{width:3px;height:3px;box-shadow:0 23px #4c2b1a}.ninja-enemy-boss .ninja-word{font-size:21px}.ninja-enemy-kind{font-size:7px;margin-top:6px}.ninja-console{padding:13px 16px 9px;min-height:180px;border-top-width:5px}.ninja-keycaps{gap:3px;min-height:40px}.ninja-key{min-width:24px;height:34px;font-size:23px;padding:0 3px;border-width:2px;border-radius:6px;box-shadow:0 3px #b28354}.ninja-key-hint{font-size:11px}.ninja-live-metrics{font-size:8px;gap:11px;letter-spacing:0}.ninja-live-metrics b{font-size:11px;margin-left:2px}.ninja-console input{height:32px}.ninja-console p{font-size:8px}.ninja-overlay{gap:9px;padding:18px 12px}.ninja-overlay h2{font-size:27px}.ninja-overlay p{font-size:11px}.ninja-results{gap:11px;padding:12px 5px}.ninja-results b{font-size:19px}.ninja-results small{font-size:8px}.ninja-page:not(.ninja-running):not(.ninja-intro) .ninja-stage:has(.ninja-results){height:410px}.ninja-panels{grid-template-columns:1fr;padding:25px 15px;gap:15px}.ninja-panels h2{font-size:21px}.ninja-summary{gap:12px 7px}.ninja-summary b{font-size:20px}.ninja-summary small{font-size:9px}.ninja-intro .ninja-heading{height:45px}.ninja-intro .ninja-arena{margin:0 10px 12px;padding:0;min-height:calc(100svh - 65px)}.ninja-intro .ninja-stage{height:calc(100svh - 65px);min-height:620px}.ninja-intro .ninja-overlay{display:flex;flex-direction:column-reverse;justify-content:center;gap:12px;padding:18px 19px 23px;text-align:center}.ninja-intro-art{width:190px;flex:none}.ninja-intro-art img{width:110%;margin-left:-5%}.ninja-intro-copy{width:100%}.ninja-intro .ninja-intro-kicker{font-size:10px;margin:0 0 13px}.ninja-intro-kicker>span{font-size:20px;margin-right:5px}.ninja-intro-copy h2{font-size:54px;letter-spacing:-3px}.ninja-intro-copy h2 span,.ninja-intro-copy h2 em{display:inline}.ninja-intro-copy h2 em{display:block;font-size:39px;letter-spacing:-2px;margin-top:7px}.ninja-intro-subtitle{font-size:11px;letter-spacing:4px;gap:12px;margin:17px 0}.ninja-intro-features{margin-bottom:21px}.ninja-intro-features>span{font-size:8px;padding:0 6px}.ninja-intro-features b{font-size:25px;min-height:31px}.ninja-intro .button{min-width:0;width:100%;padding:13px 10px;font-size:15px}.ninja-intro .button>span{font-size:21px}.ninja-intro .ninja-intro-note{font-size:9px;margin:12px 0 0}}
@media(max-width:360px){.ninja-combo-board{left:164px;width:64px}.ninja-score-board{left:90px;width:64px}.ninja-wave-board{width:64px}.ninja-hud small{font-size:7px}#ninja-pause{right:12px;width:57px}.ninja-key{font-size:19px;min-width:21px;padding:0 2px}.ninja-keycaps{gap:2px}.ninja-intro-art{width:160px}.ninja-intro-copy h2{font-size:48px}.ninja-intro-copy h2 em{font-size:34px}}
@media(prefers-reduced-motion:reduce){.ninja-page *{animation:none!important;transition:none!important}}.reduce-motion .ninja-page *{animation:none!important;transition:none!important}
/* Override the site's higher-specificity arcade button treatment inside the dojo. */
body.ninja-game-mode .ninja-page .ninja-overlay .button{background:#efc879;color:#38251d;border:3px solid #4c2c1d;border-radius:9px;box-shadow:0 5px #6e3d25}
body.ninja-game-mode .ninja-page .ninja-overlay .button.secondary{background:#f0ddbc;color:#38251d;border-color:#4c2c1d}
body.ninja-game-mode .ninja-intro .ninja-overlay .button{background:#242a35;color:#fff;border:0;border-radius:36px;box-shadow:none}
.ninja-wave-board small{font-size:10px;letter-spacing:0;white-space:nowrap}
@media(max-width:700px){.ninja-wave-board small{font-size:6px}}

.ninja-enemy{left:clamp(130px,var(--enemy-x,70%),calc(100% - 130px))}
.ninja-panels .tiny{color:#6d5a4a}
@media(max-width:700px){.ninja-enemy{left:clamp(90px,var(--enemy-x,70%),calc(100% - 90px))}.ninja-arena{display:flex;flex-direction:column}.ninja-stage{flex:none}.ninja-console{flex:1}.ninja-intro .ninja-arena{display:block}}

/* Preserve the supplied illustration's full frame and proportions during play. */
.ninja-page:not(.ninja-intro) .ninja-arena{container-type:inline-size;width:min(100%,max(320px,calc((100svh - 330px)*16/9)));min-height:0;aspect-ratio:16/9;margin:0 auto 270px;padding:0;border:0;background:#351b12 url('/assets/ninja/dojo-reference-arena.png') center/100% 100% no-repeat;display:block}
.ninja-page:not(.ninja-intro) .ninja-arena::before,.ninja-page:not(.ninja-intro) .ninja-arena::after,.ninja-page:not(.ninja-intro) .ninja-stage::after,.ninja-page:not(.ninja-intro) .ninja-balcony{display:none}
.ninja-page:not(.ninja-intro) .ninja-stage{position:absolute;left:17.5%;top:4%;width:65.5%;height:63%;min-height:0;margin:0;border:0;background:none;overflow:hidden}
.ninja-page:not(.ninja-intro) .ninja-score-board,.ninja-page:not(.ninja-intro) .ninja-wave-board,.ninja-page:not(.ninja-intro) .ninja-combo-board{left:1%;width:11%;padding:2.3cqw .4cqw .8cqw;border-width:2px;border-radius:12px}
.ninja-page:not(.ninja-intro) .ninja-wave-board{top:7%}.ninja-page:not(.ninja-intro) .ninja-score-board{top:26%}.ninja-page:not(.ninja-intro) .ninja-combo-board{top:45%}
.ninja-page:not(.ninja-intro) .ninja-hud small{left:5%;right:5%;font-size:clamp(7px,1.2cqw,16px);padding:.6cqw .2cqw;top:-1.4cqw;border-width:2px}
.ninja-page:not(.ninja-intro) .ninja-hud b{font-size:clamp(14px,2.2cqw,29px)}
.ninja-page:not(.ninja-intro) .ninja-health{right:1%;top:20%;width:11%;font-size:10px}
.ninja-page:not(.ninja-intro) .ninja-health span b{font-size:clamp(8px,1.2cqw,14px)}
.ninja-page:not(.ninja-intro) #ninja-pause{right:1%;top:6%;width:11%;font-size:clamp(9px,1.3cqw,15px);padding:.8cqw .2cqw;border-width:2px}
.ninja-page:not(.ninja-intro) .ninja-hero{left:43%;bottom:1%;width:12%;filter:brightness(0) opacity(.78)}
.ninja-page:not(.ninja-intro) .ninja-console{position:absolute;top:84%;left:0;width:100%;min-height:0;padding:0 14% 14px;display:flex;flex-direction:column;background:none;border:0;box-shadow:none}
.ninja-page:not(.ninja-intro) .ninja-console::before{content:'';position:absolute;z-index:-1;top:9cqw;left:0;right:0;bottom:0;background:#2a170f;border-radius:0 0 10px 10px}
.ninja-keycaps{order:0}.ninja-target-prompt{order:1}.ninja-console label{order:2}.ninja-live-metrics{order:3}#ninja-rejected{order:4}#ninja-feedback{order:5}#ninja-help{order:6}
.ninja-page:not(.ninja-intro) .ninja-keycaps{height:9cqw;min-height:0;flex-wrap:nowrap;gap:.4cqw;margin:0 0 5px}
.ninja-page:not(.ninja-intro) .ninja-key{min-width:0;max-width:70px;flex:1;height:6.8cqw;min-height:35px;max-height:78px;padding:0 3px;font-size:clamp(18px,3.8cqw,48px);border-radius:9px}
.ninja-target-prompt{font:700 11px Arial,sans-serif;color:#e4c29b;margin:3px 0 8px;min-width:0}.ninja-target-prompt>span{font-size:9px;letter-spacing:1.3px;display:block}.ninja-target-prompt strong{font:800 25px/1.2 'Courier New',monospace;color:#fff1d6;display:block;overflow-wrap:anywhere;margin:3px 0}.ninja-target-prompt small{display:block;color:#d6b797;font-size:10px;font-weight:400;min-height:12px}
.ninja-page:not(.ninja-intro) .ninja-console input{height:38px;max-width:520px;font-size:23px;letter-spacing:2px;margin:5px auto 8px;text-align:center;opacity:1}.ninja-console input::placeholder{font-size:17px;letter-spacing:1px;color:#947454;opacity:1}.ninja-console input[aria-invalid=true]{border-color:#ff6c77;outline-color:#ff6c77}#ninja-rejected{color:#ffadb4;font-size:12px;min-height:16px;margin:2px 0 5px}#ninja-rejected[hidden]{display:none}
.ninja-running:not(.ninja-records-open) .ninja-panels{display:none}
.ninja-page:not(.ninja-intro) .ninja-enemy{max-width:96%;left:clamp(95px,var(--enemy-x,70%),calc(100% - 95px))}.ninja-page:not(.ninja-intro) .ninja-word{max-width:100%;font-size:clamp(14px,2.8cqw,31px);padding:.6cqw 1cqw;letter-spacing:0}
@media(max-width:700px){
 .ninja-page:not(.ninja-intro) .ninja-arena{container-type:normal;width:100%;aspect-ratio:auto;min-height:calc(100svh - 45px);margin:0;padding:102px 0 0;background:#321b12;display:flex;flex-direction:column}
 .ninja-page:not(.ninja-intro) .ninja-stage{position:relative;left:auto;top:auto;width:100%;height:clamp(230px,36svh,340px);flex:none;background:#e28c95 url('/assets/ninja/dojo-reference-arena.png') center/auto 119% no-repeat}
 .ninja-page:not(.ninja-intro) .ninja-wave-board,.ninja-page:not(.ninja-intro) .ninja-score-board,.ninja-page:not(.ninja-intro) .ninja-combo-board{left:12px;top:21px;width:66px;padding:16px 3px 8px}.ninja-page:not(.ninja-intro) .ninja-score-board{left:86px}.ninja-page:not(.ninja-intro) .ninja-combo-board{left:160px}
 .ninja-page:not(.ninja-intro) .ninja-hud small{font-size:7px;top:-12px;padding:4px 0;left:2px;right:2px}.ninja-page:not(.ninja-intro) .ninja-hud b{font-size:17px}
 .ninja-page:not(.ninja-intro) #ninja-pause{top:23px;right:12px;width:64px;font-size:9px;padding:7px 2px}.ninja-page:not(.ninja-intro) .ninja-health{top:74px;left:15px;right:auto;width:183px;font-size:8px}.ninja-page:not(.ninja-intro) .ninja-health span b{font-size:9px}
 .ninja-page:not(.ninja-intro) .ninja-console{position:relative;top:auto;left:auto;flex:1;width:100%;padding:10px 14px 15px;background:#2a170f}.ninja-page:not(.ninja-intro) .ninja-console::before{display:none}
 .ninja-page:not(.ninja-intro) .ninja-keycaps{height:38px;min-height:38px;gap:2px;margin:0 0 8px}.ninja-page:not(.ninja-intro) .ninja-key{height:31px;min-height:31px;font-size:clamp(12px,4vw,22px);padding:0 1px;max-width:38px;border-width:2px;border-radius:5px}
 .ninja-target-prompt{margin:0 0 8px}.ninja-target-prompt strong{font-size:24px}.ninja-target-prompt small{font-size:9px;min-height:10px}.ninja-page:not(.ninja-intro) .ninja-console input{height:40px;font-size:23px}.ninja-live-metrics{font-size:8px;gap:9px}.ninja-console p{font-size:8px}
 .ninja-page:not(.ninja-intro) .ninja-enemy{left:clamp(90px,var(--enemy-x,70%),calc(100% - 90px));max-width:calc(100% - 8px)}.ninja-page:not(.ninja-intro) .ninja-word{font-size:clamp(12px,4.1vw,17px);padding:8px 10px}
 .ninja-page:not(.ninja-intro) .ninja-hero{width:50px;left:41%;bottom:4%}.ninja-page:not(.ninja-running):not(.ninja-intro) .ninja-stage:has(.ninja-results){height:430px}
}

/* Selectable enemy ninjas keep their word above the character. */
.ninja-page .ninja-enemy{appearance:none;border:0;border-radius:8px;background:transparent;padding:0;color:#42314e;cursor:crosshair;font:inherit;box-shadow:none}
.ninja-page .ninja-enemy:focus-visible{outline:3px solid #ffd25c;outline-offset:4px}
.ninja-page .ninja-enemy-body{display:block;width:32px;margin:3px auto 0;filter:drop-shadow(2px 3px 1px #20131e88);transition:filter .15s}
.ninja-enemy-body svg{display:block;width:100%}
.ninja-page .ninja-enemy-fast{color:#913b43}.ninja-page .ninja-enemy-armored{color:#526479}.ninja-page .ninja-enemy-boss{color:#742440}
.ninja-page .ninja-enemy-boss .ninja-enemy-body{width:39px}
.ninja-page .ninja-enemy-kind{position:absolute;top:calc(100% - 24px);left:calc(50% + 19px);margin:0;font-size:7px;white-space:nowrap}
.ninja-page .ninja-enemy.targeted .ninja-enemy-body{filter:drop-shadow(0 0 5px #ffe582)}
