:root{color-scheme:dark;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#120f21;color:#f7f1ff}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 85% 5%,#382950 0,transparent 30%),#120f21;min-height:100vh}
.shell{width:min(100%,1024px);margin:0 auto;padding:28px 20px 36px;border-left:2px solid #6e608f;border-right:2px solid #6e608f;min-height:100vh;box-shadow:inset 0 0 0 5px #211a39}
h1,h2,h3,p{margin:0}h1{font-size:clamp(2.4rem,8vw,5rem);line-height:1.06;color:#fff1a9;letter-spacing:.045em;text-shadow:0 0 18px #7952a7}h2{font-size:1.1rem;letter-spacing:.12em;color:#dbc3ff;margin:27px 0 12px;text-transform:uppercase}h3{font-size:clamp(1.1rem,3vw,1.55rem);overflow-wrap:anywhere;line-height:1.18}
.topline{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;color:#dbc3ff;letter-spacing:.1em;font-size:.8rem}.week{border:1px solid #6e608f;padding:7px 9px;color:#f6f3ff;letter-spacing:0}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 254px;gap:20px;align-items:center;margin:36px 0 22px}.hero p:not(.eyebrow){max-width:540px;color:#d2c5ea;margin-top:10px;line-height:1.5}.eyebrow{color:#a5eabf;font-size:.78rem;letter-spacing:.18em;margin-bottom:6px}
.pixel-stage{height:112px;position:relative;overflow:hidden;border:2px solid #6e608f;background:repeating-linear-gradient(0deg,#211a39 0 8px,#201a35 8px 16px)}
.pixel-stage:after{content:"";position:absolute;left:10px;right:10px;bottom:17px;border-bottom:3px dashed #665b81}
.ninja{position:absolute;z-index:2;left:10px;bottom:22px;width:24px;height:24px;background:#17151d;border:3px solid #bba4e5;box-shadow:0 22px 0 -5px #17151d,7px 22px 0 -5px #17151d;animation:ninja-walk 6s steps(16,end) infinite}
.ninja:before{content:"";position:absolute;left:2px;top:7px;width:14px;height:4px;background:#fff1a9;box-shadow:2px 0 0 #17151d,9px 0 0 #17151d}
.ninja:after{content:"";position:absolute;left:-7px;top:1px;width:10px;height:4px;background:#b34b6c;transform:rotate(-12deg)}
.trap{position:absolute;z-index:1;right:18px;bottom:20px;width:47px;height:9px;background:#a87206;border:2px solid #ffe18a}
.trap:before,.trap:after{content:"";position:absolute;bottom:3px;width:19px;height:18px;border:5px solid #ffe18a;border-bottom:0;transform-origin:bottom center}
.trap:before{left:-3px;transform:rotate(-45deg);animation:jaw-left 6s steps(2,end) infinite}.trap:after{right:-3px;transform:rotate(45deg);animation:jaw-right 6s steps(2,end) infinite}
.pop{position:absolute;right:11px;top:16px;color:#a5eabf;font-weight:900;font-size:1.15rem;opacity:0;animation:nope-pop 6s steps(2,end) infinite}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stats>div{padding:15px;border:1px solid #6e608f;background:#292242;display:flex;flex-direction:column;gap:4px}.stats strong{font-size:clamp(1.6rem,4vw,2.3rem);color:#a5eabf}.stats span{font-size:.78rem;color:#d2c5ea;text-transform:uppercase;letter-spacing:.1em}
.counter{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:14px 0 20px;padding:10px 14px;border:1px solid #6e608f;background:#211a39}.counter div{display:flex;flex-direction:column;gap:3px}.counter strong{font-size:.88rem;letter-spacing:.16em;color:#fff1a9}.counter span{font-size:.76rem;letter-spacing:.08em;color:#d2c5ea}.counter img{display:block;width:min(100%,290px);height:auto;image-rendering:pixelated}
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.player{min-width:0;min-height:153px;padding:14px;border:1px solid #6e608f;background:#292242}.player:first-child{border-color:#f6d979;background:#392d4b}.place{font-size:.78rem;color:#f6d979;letter-spacing:.08em;margin-bottom:17px}.score{font-size:1.25rem;color:#a5eabf;font-weight:800;margin-top:13px}.minor{font-size:.8rem;color:#d2c5ea;margin-top:5px}.vacant{opacity:.55}
.badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.badge{display:inline-block;border:1px solid #6e608f;padding:3px 6px;color:#dbc3ff;font-size:.67rem;letter-spacing:.06em}.badge.lunar{border-color:#f6d979;color:#fff1a9}.runners{list-style:none;margin:11px 0 0;padding:0;border:1px solid #6e608f}.runners li{display:grid;grid-template-columns:55px minmax(0,1fr) auto;align-items:start;gap:8px;padding:9px 13px;border-bottom:1px dashed #6e608f}.runners li:last-child{border-bottom:0}.runner-name{min-width:0;overflow-wrap:anywhere}.runner-name .badges{margin-top:5px}.runner-score{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}.runner-score strong{color:#a5eabf}.runner-score small{color:#d2c5ea;font-size:.68rem;letter-spacing:.04em}.rank{color:#f6d979}.empty{color:#d2c5ea}
.families ul{margin:0;padding:0;list-style:none;border:1px solid #6e608f}.families li{padding:9px 13px;display:flex;justify-content:space-between;gap:16px;border-bottom:1px dashed #6e608f}.families li:last-child{border-bottom:0}.families strong{color:#a5eabf}
.transmission{margin-top:28px;text-align:center}.transmission img{display:block;width:min(100%,760px);height:auto;margin:0 auto}
@keyframes ninja-walk{0%{transform:translateX(0)}68%{transform:translateX(169px)}72%{transform:translateX(172px) rotate(-15deg)}76%,88%{transform:translateX(172px) rotate(-55deg);opacity:1}92%,100%{transform:translateX(172px) rotate(-55deg);opacity:0}}
@keyframes jaw-left{0%,69%,100%{transform:rotate(-45deg)}72%,88%{transform:rotate(12deg)}}
@keyframes jaw-right{0%,69%,100%{transform:rotate(45deg)}72%,88%{transform:rotate(-12deg)}}
@keyframes nope-pop{0%,69%,92%,100%{opacity:0;transform:translateY(9px)}74%,88%{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.hero{grid-template-columns:1fr}.pixel-stage{width:254px;max-width:100%}}
@media(max-width:580px){.shell{padding:19px 15px}.board{grid-template-columns:1fr}.player{min-height:0}.stats{gap:5px}.stats>div{padding:9px}.stats span{font-size:.65rem}.runners li{grid-template-columns:42px minmax(0,1fr)}.runner-score{grid-column:2;align-items:flex-start;text-align:left}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}.ninja{transform:none}.trap:before{transform:rotate(-45deg)}.trap:after{transform:rotate(45deg)}}
