:root{--blue:#2b74d8;--sky:#72b7f2;--green:#39a94b;--lime:#55d95b;--red:#d9483b;--yellow:#ffd33d;--ink:#171a1e;--panel:#e8e9eb;--line:3px solid #171a1e;--ui:Arial Black,Arial,sans-serif;--body:Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#222;color:#171a1e;font-family:var(--body);overflow-x:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}img{display:block;max-width:100%}
.gamebar{height:70px;position:fixed;z-index:50;left:0;right:0;top:0;display:flex;align-items:center;gap:22px;padding:0 2.2vw;background:linear-gradient(#3e434a,#282c31);border-bottom:4px solid #111;color:white;box-shadow:0 5px 0 rgba(0,0,0,.3)}.game-logo{font:20px var(--ui);letter-spacing:-1px;display:flex;align-items:center;gap:10px}.game-logo span{display:grid;place-items:center;width:37px;height:37px;background:#ddd;color:#222;border:4px solid white;box-shadow:inset -4px -4px 0 #999,3px 3px 0 #111;transform:rotate(8deg)}.server-pill{font:bold 11px Arial;background:#171a1e;border:2px solid #59616b;border-radius:5px;padding:9px 12px}.server-pill i{display:inline-block;width:9px;height:9px;background:#58df69;border-radius:50%;box-shadow:0 0 9px #58df69;margin-right:6px}.gamebar nav{display:flex;gap:7px;margin-left:auto}.gamebar nav a,.sound{border:2px solid #111;border-radius:4px;background:linear-gradient(#6c747d,#41474e);color:white;padding:10px 14px;font-weight:900;font-size:11px;box-shadow:inset 0 2px 0 rgba(255,255,255,.22)}.sound{cursor:pointer}
.spawn{height:max(850px,100vh);position:relative;overflow:hidden;background:var(--sky);padding-top:70px}.spawn-world{position:absolute;inset:70px 0 0;background:url('assets/baseplate.png') center bottom/cover no-repeat;image-rendering:auto}.spawn:after{content:'';position:absolute;z-index:1;left:0;right:0;bottom:0;height:26%;background:radial-gradient(circle at 4px 4px,rgba(0,0,0,.17) 0 2px,transparent 2.5px) 0 0/18px 18px;mix-blend-mode:multiply;pointer-events:none}.sky-cloud{position:absolute;z-index:1;background:white;width:120px;height:38px;top:130px;opacity:.82;box-shadow:45px -20px 0 8px white,90px 2px 0 -4px white;filter:blur(1px);animation:cloud 25s linear infinite}.c1{left:-200px}.c2{left:-400px;top:240px;animation-delay:-12s;transform:scale(.7)}@keyframes cloud{to{left:110%}}
.spawn-copy{position:absolute;z-index:5;left:5vw;top:16vh;width:min(650px,90vw);filter:drop-shadow(7px 8px 0 rgba(0,0,0,.2))}.badge{display:inline-block;background:#30343a;color:white;border:3px solid #111;border-radius:4px;padding:9px 13px;font:bold 12px var(--body);box-shadow:inset 0 2px 0 #69717b}.spawn h1{font:clamp(85px,12vw,185px)/.7 var(--ui);letter-spacing:-.085em;color:white;-webkit-text-stroke:5px #171a1e;text-shadow:8px 8px 0 var(--blue);margin:35px 0 42px}.spawn h1 span{color:var(--yellow);text-shadow:8px 8px 0 var(--red)}.spawn-copy>p{display:inline-block;background:white;border:var(--line);padding:12px 15px;margin:0 0 18px;font-weight:900;box-shadow:5px 5px 0 #171a1e}
.ca-brick{display:grid;grid-template-columns:1fr auto;gap:4px 15px;align-items:center;background:linear-gradient(#f4f5f6,#cfd2d5);border:4px solid #171a1e;border-radius:5px;box-shadow:inset 0 3px 0 white,inset 0 -5px 0 #9ca1a7,7px 7px 0 rgba(0,0,0,.35);padding:14px 14px;max-width:610px}.ca-brick small{grid-column:1;font-weight:900;font-size:9px;color:#555}.ca-brick strong{grid-column:1;font:24px var(--ui);overflow-wrap:anywhere}.ca-brick button{grid-column:2;grid-row:1/3;background:linear-gradient(#65e474,#289c39);color:white;border:3px solid #155b22;border-radius:4px;padding:16px 18px;font-weight:900;text-shadow:0 2px 0 #155b22;cursor:pointer;box-shadow:inset 0 3px 0 rgba(255,255,255,.35)}
.spawn-buttons{display:flex;gap:12px;margin-top:22px}.rb-btn{display:inline-flex;justify-content:center;align-items:center;min-width:180px;padding:17px 20px;border:3px solid #111;border-radius:5px;color:white;font:15px var(--ui);text-shadow:0 2px 0 rgba(0,0,0,.45);box-shadow:inset 0 3px 0 rgba(255,255,255,.32),0 5px 0 rgba(0,0,0,.45);transition:.12s}.rb-btn:active{transform:translateY(4px);box-shadow:inset 0 3px 0 rgba(255,255,255,.25),0 1px 0 #111}.green{background:linear-gradient(#60e470,#28a23d)}.blue{background:linear-gradient(#59a7f7,#2669bd)}.yellow{background:linear-gradient(#ffe66f,#dcaa12);color:#1c1c1c;text-shadow:none}
.spawn-cat{position:absolute;z-index:4;width:min(47vw,650px);right:3vw;bottom:7%;filter:drop-shadow(20px 25px 0 rgba(0,0,0,.22));animation:bob 3s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-13px)}}.player-card{position:absolute;z-index:6;right:3vw;top:105px;width:280px;background:linear-gradient(#f5f5f5,#c9cdd1);border:4px solid #171a1e;border-radius:5px;display:grid;grid-template-columns:72px 1fr 56px;gap:11px;align-items:center;padding:8px;box-shadow:7px 7px 0 rgba(0,0,0,.35)}.player-card img{width:70px;height:70px;object-fit:contain;background:var(--sky);border:2px solid #333}.player-card small,.player-card span{display:block;font-size:9px;font-weight:bold;color:#5a5f65}.player-card b{font:16px var(--ui);display:block}.player-card>strong{background:var(--yellow);border:2px solid #111;padding:8px 5px;text-align:center;font-size:11px}.scroll-cue{position:absolute;z-index:8;bottom:18px;left:50%;transform:translateX(-50%);background:#292d32;color:white;border:3px solid #111;padding:10px 18px;font-weight:900;font-size:10px;box-shadow:inset 0 2px 0 #626a74}.scroll-cue b{color:var(--yellow)}
.map-section{position:relative;z-index:2;padding:110px 5vw 125px;background:radial-gradient(circle at 5px 5px,rgba(0,0,0,.15) 0 3px,transparent 3.5px) 0 0/22px 22px,var(--green);border-block:7px solid #1a5f25}.map-title{max-width:1000px;margin:auto;text-align:center}.map-title small,.inventory-copy small{font-weight:900;background:#222;color:white;padding:9px 12px;border:2px solid #111}.map-title h2,.inventory-copy h2{font:clamp(65px,10vw,140px)/.78 var(--ui);letter-spacing:-.07em;color:white;-webkit-text-stroke:4px #171a1e;text-shadow:8px 8px 0 #176f27;margin:45px 0}.map-title p{font-weight:900;font-size:18px;max-width:650px;margin:0 auto;background:white;border:var(--line);padding:16px;box-shadow:7px 7px 0 #171a1e}.checkpoint-row{max-width:1100px;margin:85px auto 0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}.checkpoint-row:before{content:'';position:absolute;top:33px;left:10%;right:10%;height:10px;background:#d5d5d5;border:3px solid #222}.checkpoint-row a{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;font-weight:900}.checkpoint-row i{width:70px;height:70px;border:6px solid white;background:var(--red);box-shadow:0 0 0 4px #222,inset -8px -8px 0 rgba(0,0,0,.2);transform:rotate(45deg)}.checkpoint-row a:nth-child(2) i{background:var(--yellow)}.checkpoint-row a:nth-child(3) i{background:var(--blue)}.checkpoint-row a:nth-child(4) i{background:#802bbb}.checkpoint-row b{margin-top:7px;background:#222;color:white;padding:5px}.checkpoint-row span{background:white;border:2px solid #222;padding:6px 12px}
.world-section{height:950px;min-height:100vh;position:relative;overflow:hidden;background:#111;border-bottom:8px solid #111}.world-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.05)),var(--world);background-position:center;background-size:cover}.world-hud{position:absolute;z-index:5;left:5vw;top:120px;width:min(530px,90vw);background:rgba(235,237,239,.94);border:5px solid #171a1e;border-radius:6px;padding:24px 26px;box-shadow:inset 0 4px 0 white,inset 0 -8px 0 #acb1b7,10px 12px 0 rgba(0,0,0,.35)}.world-hud>span{display:inline-block;background:#2f353c;color:white;padding:7px 10px;font-weight:900;font-size:10px}.world-hud h2{font:clamp(58px,7vw,105px)/.8 var(--ui);letter-spacing:-.065em;color:var(--red);-webkit-text-stroke:3px #171a1e;text-shadow:5px 5px 0 var(--yellow);margin:28px 0}.world-hud p{font-size:18px;line-height:1.4;font-weight:900}.stats{border-top:3px solid #777;margin-top:22px;padding-top:15px;display:flex;gap:14px;flex-wrap:wrap}.stats b{font-size:9px}.stats i{display:block;color:var(--blue);font-style:normal;font-size:18px}.world-cat{position:absolute;z-index:4;filter:drop-shadow(18px 22px 0 rgba(0,0,0,.25))}.obby-cat{width:min(39vw,540px);right:9vw;bottom:4%;transform:rotate(-5deg)}.floating-brick{position:absolute;z-index:3;width:90px;height:35px;border:4px solid #61120f;background:var(--red);box-shadow:inset 0 8px 0 rgba(255,255,255,.25),0 10px 0 #8c241d}.b1{right:13%;top:22%;transform:rotate(12deg)}.b2{right:4%;top:39%;background:var(--yellow);border-color:#856509;box-shadow:inset 0 8px 0 rgba(255,255,255,.3),0 10px 0 #b38a11}.b3{right:38%;bottom:12%;background:var(--blue);border-color:#163e71;box-shadow:inset 0 8px 0 rgba(255,255,255,.3),0 10px 0 #1e5599}
.inventory{min-height:700px;padding:100px 5vw;display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;background:radial-gradient(circle at 6px 6px,rgba(255,255,255,.13) 0 3px,transparent 3.5px) 0 0/24px 24px,#31363c;border-bottom:8px solid #111}.inventory-panel{background:#d5d8db;border:5px solid #111;border-radius:6px;box-shadow:inset 0 5px 0 white,inset 0 -9px 0 #8d9399,13px 14px 0 rgba(0,0,0,.5)}.panel-top{background:linear-gradient(#555d65,#34393f);color:white;border-bottom:4px solid #111;padding:15px;display:flex;justify-content:space-between;font:18px var(--ui)}.panel-top button{width:32px;height:28px;background:var(--red);color:white;border:2px solid #111;font-weight:900}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:20px}.slot{aspect-ratio:.78;background:#aaa;border:4px solid #333;box-shadow:inset 0 0 0 3px #e8e8e8;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:10px;font-weight:900;font-size:10px}.slot.active{background:var(--sky);outline:5px solid var(--yellow)}.slot img{width:100%;height:100px;object-fit:contain}.coin,.question{width:70px;height:70px;display:grid;place-items:center;border-radius:50%;background:var(--yellow);border:6px solid #9f7410;font:35px var(--ui)}.question{background:#8e49ce;color:white;border-color:#51247a}.slot.locked{filter:grayscale(1);opacity:.55}.inventory-copy{color:white}.inventory-copy h2{font-size:clamp(58px,7vw,100px);text-shadow:7px 7px 0 #111;margin-bottom:0}
.build-world .world-hud h2{color:var(--blue);text-shadow:5px 5px 0 var(--yellow)}.build-cat{width:min(34vw,480px);left:50%;bottom:3%;transform:rotate(4deg)}.toolbox{position:absolute;z-index:6;right:3vw;top:95px;background:#d9dde0;border:4px solid #111;border-radius:5px;display:grid;grid-template-columns:repeat(4,52px);gap:8px;padding:14px;box-shadow:inset 0 4px 0 white,8px 8px 0 rgba(0,0,0,.35)}.toolbox b{grid-column:1/-1;background:#333;color:white;padding:8px}.toolbox span{height:45px;border:3px solid #222;box-shadow:inset 0 7px 0 rgba(255,255,255,.3)}.toolbox .red{background:var(--red)}.toolbox .blue{background:var(--blue)}.toolbox .yellow{background:var(--yellow)}.toolbox .green{background:var(--green)}.toolbox em{font-style:normal;font-weight:900;font-size:9px;text-align:center}
.night-world .world-bg{filter:saturate(1.08)}.world-hud.dark{background:rgba(35,39,47,.92);color:white;box-shadow:inset 0 4px 0 #69717c,inset 0 -8px 0 #111,10px 12px 0 rgba(0,0,0,.5)}.night-world .world-hud h2{color:#a35dea;text-shadow:5px 5px 0 #06184b}.night-cat{width:min(36vw,500px);right:18vw;bottom:3%}.chatbox{position:absolute;z-index:7;left:4vw;bottom:35px;width:min(560px,92vw);background:rgba(17,20,27,.82);border:3px solid #6d7583;color:white;padding:14px;font:bold 13px Arial}.chatbox div{margin:8px 0}.chatbox b{color:var(--yellow)}.chatbox form{display:flex;margin-top:14px}.chatbox input{flex:1;min-width:0;background:rgba(255,255,255,.15);border:2px solid #888;color:white;padding:11px}.chatbox button{background:var(--blue);color:white;border:2px solid #111;font-weight:900}.chatbox input::placeholder{color:#ccc}
.end-screen{min-height:820px;display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden;background:radial-gradient(circle at 5px 5px,rgba(0,0,0,.16) 0 3px,transparent 3.5px) 0 0/22px 22px,var(--yellow);border-bottom:8px solid #111}.winner{padding:120px 5vw;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:3}.winner small{align-self:flex-start;background:#222;color:white;border:3px solid #111;padding:9px;font-weight:900}.winner h2{font:clamp(75px,10vw,150px)/.77 var(--ui);letter-spacing:-.08em;color:white;-webkit-text-stroke:5px #111;text-shadow:9px 9px 0 var(--red);margin:45px 0}.winner p{font-weight:900;font-size:20px}.end-actions{display:flex;gap:12px;flex-wrap:wrap}.end-actions a,.end-actions button{min-width:135px;display:flex;justify-content:center;align-items:center;gap:9px;padding:15px;background:linear-gradient(#f8f8f8,#bfc3c6);border:3px solid #111;border-radius:4px;font-weight:900;box-shadow:inset 0 3px 0 white,0 5px 0 rgba(0,0,0,.4);cursor:pointer}.end-actions img{width:24px;height:24px;object-fit:contain}.end-cat{position:absolute;right:0;bottom:-5%;width:52%;filter:drop-shadow(20px 25px 0 rgba(0,0,0,.24))}
footer{min-height:80px;background:#272b30;color:white;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 3vw;border-top:4px solid #606872;font-weight:900;font-size:11px}.toast{position:fixed;z-index:99;right:25px;bottom:25px;background:linear-gradient(#616a74,#32373d);color:white;border:3px solid #111;border-radius:4px;padding:15px 18px;box-shadow:inset 0 3px 0 rgba(255,255,255,.25),0 5px 0 rgba(0,0,0,.45);transform:translateY(100px);opacity:0;transition:.22s;font-weight:900}.toast.show{transform:none;opacity:1}
.reveal{opacity:0;transform:translateY(35px);transition:.65s ease}.reveal.visible,.spawn .reveal{opacity:1;transform:none}
@media(max-width:900px){.gamebar nav,.server-pill{display:none}.gamebar .sound{margin-left:auto}.spawn{height:940px}.spawn-copy{top:125px}.spawn-cat{width:58vw;right:-5vw}.player-card{top:auto;bottom:75px;left:20px;right:auto}.checkpoint-row{grid-template-columns:repeat(2,1fr);gap:50px 0}.checkpoint-row:before{display:none}.inventory{grid-template-columns:1fr}.world-section{height:900px}.world-hud{top:90px}.obby-cat,.build-cat,.night-cat{width:50vw;right:5vw;left:auto}.toolbox{display:none}.end-screen{grid-template-columns:1fr}.end-cat{width:62%;opacity:.7}}
@media(max-width:600px){.gamebar{height:62px;padding:0 12px}.game-logo{font-size:15px}.game-logo span{width:32px;height:32px}.spawn{height:880px;padding-top:62px}.spawn-world{inset:62px 0 0;background-position:60% bottom}.spawn-copy{left:15px;top:105px;width:calc(100% - 30px)}.spawn h1{font-size:72px;-webkit-text-stroke:3px #171a1e;text-shadow:5px 5px 0 var(--blue);margin:28px 0 36px}.spawn-copy>p{font-size:12px}.ca-brick{display:flex;align-items:stretch;flex-direction:column}.ca-brick strong{font-size:18px}.ca-brick button{width:100%}.spawn-buttons{flex-direction:column}.rb-btn{width:100%}.spawn-cat{width:86vw;right:-20vw;bottom:10%}.player-card{width:250px}.map-section{padding:85px 16px}.map-title h2{font-size:58px}.checkpoint-row{grid-template-columns:1fr 1fr}.world-section{height:820px}.world-bg{background-position:center}.world-hud{left:14px;top:70px;width:calc(100% - 28px);padding:20px}.world-hud h2{font-size:55px}.world-hud p{font-size:15px}.world-cat{width:73vw}.obby-cat,.build-cat,.night-cat{right:-7vw;bottom:3%}.floating-brick{display:none}.inventory{padding:75px 15px}.slots{grid-template-columns:1fr 1fr}.inventory-copy h2{font-size:53px}.chatbox{left:12px;width:calc(100% - 24px)}.winner{padding:90px 16px}.winner h2{font-size:69px}.end-cat{width:90%;right:-30%;opacity:.55}footer{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* Functional controls */
.rb-btn,.inventory-close,.inventory-open,.slot,.toolbox button,.chatbox button{cursor:pointer}
.sound.active{background:linear-gradient(#67df72,#278f38);border-color:#123f1b}
.inventory-panel{transition:opacity .2s ease,transform .2s ease}
.inventory.closed .inventory-panel{display:none}
.inventory-open{display:none;min-height:72px;padding:16px 24px;background:linear-gradient(#65e474,#289c39);color:white;border:4px solid #111;border-radius:5px;box-shadow:inset 0 3px 0 rgba(255,255,255,.35),0 7px 0 rgba(0,0,0,.45);font:17px var(--ui)}
.inventory.closed .inventory-open{display:block}
.slot{color:#171a1e}
.slot:hover,.slot:focus-visible{filter:brightness(1.08);outline:5px solid white}
.slot.active{filter:none;outline:5px solid var(--yellow)}
.slot.locked{opacity:.62}
.lock-mark{display:grid;place-items:center;width:70px;height:70px;background:#555;color:white;border:5px solid #222;font:12px var(--ui)}
.inventory-detail{min-height:76px;margin:0 20px 22px;padding:14px;background:#f5f5f5;border:3px solid #333;box-shadow:inset 0 -5px 0 #c2c6c9;display:flex;flex-direction:column;gap:6px}
.inventory-detail b{font:16px var(--ui);color:var(--blue)}
.inventory-detail span{font-size:11px;font-weight:900}
.inventory-copy p{font-weight:900;font-size:17px}
.build-canvas{position:absolute;inset:0;z-index:4;pointer-events:none}
.placed-block{position:absolute;width:86px;height:42px;border:4px solid #111;box-shadow:inset 0 8px 0 rgba(255,255,255,.3),0 9px 0 rgba(0,0,0,.38);pointer-events:auto;cursor:grab;touch-action:none}
.placed-block:active{cursor:grabbing}
.placed-block.selected{outline:5px solid white;filter:drop-shadow(0 0 7px #ffd33d)}
.placed-block.red{background:var(--red)}.placed-block.blue{background:var(--blue)}.placed-block.yellow{background:var(--yellow)}.placed-block.green{background:var(--green)}
.toolbox{z-index:8}
.toolbox button{min-height:42px;border:3px solid #222;font:8px var(--ui);box-shadow:inset 0 5px 0 rgba(255,255,255,.25)}
.toolbox .paint.red{background:var(--red)}.toolbox .paint.blue{background:var(--blue)}.toolbox .paint.yellow{background:var(--yellow)}.toolbox .paint.green{background:var(--green)}
.toolbox button.active{outline:4px solid white;transform:translateY(-2px)}
.chat-log{max-height:190px;overflow:auto}
.chat-log div{padding:4px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.chatbox input:focus{outline:3px solid var(--yellow)}
@media(max-width:600px){.inventory-open{width:100%}.placed-block{width:64px;height:32px}}
/* Compact content ending */
.end-screen{min-height:520px}
.winner{padding-top:70px;padding-bottom:70px}
.winner h2{font-size:clamp(58px,7vw,96px);margin:28px 0}
@media(max-width:600px){.toolbox{display:grid;top:auto;bottom:14px;right:6px;transform:scale(.7);transform-origin:bottom right}.end-screen{min-height:610px}.winner{padding-top:60px;padding-bottom:60px}}