:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font-family:Inter,Avenir,Helvetica,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5}body{margin:0;overflow:hidden}body,html{height:100%}canvas{background:linear-gradient(#111317,#3d4f5ee2 60%,#4fa6a7d8 92%,#08a3a6 100%);outline:none;width:100%;height:100%}.loading-overlay{z-index:30;color:#ffffffeb;text-align:center;background:#0c0e12eb;justify-content:center;align-items:center;padding:24px;transition:opacity .18s,visibility .18s;display:flex;position:fixed;inset:0}.loading-overlay.is-hidden{visibility:hidden;opacity:0}.loading-content{text-align:center;justify-items:center;gap:14px;width:min(420px,100vw - 48px);display:grid}.mario-logo{object-fit:contain;filter:drop-shadow(0 12px 22px #0000007a);width:min(340px,78vw);max-height:180px;display:block}.loading-overlay p{color:#ffffffb8;margin:0;font-size:.95rem}.loading-track{background:#ffffff29;border-radius:999px;width:100%;height:8px;overflow:hidden}.loading-progress{transform-origin:0;background:#56d4c8;width:100%;height:100%;transition:transform .16s;transform:scaleX(0)}.stats-panel{inset:auto 0 0 auto!important}.side-panel-stack{z-index:10;gap:10px;width:min(300px,100vw - 32px);max-height:calc(100vh - 32px);display:grid;position:fixed;top:16px;left:16px;overflow:auto}.scene-info-panel,.controls-legend{box-sizing:border-box;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#ffffffeb;background:#0c0e12c7;border:1px solid #fff3;border-radius:8px;padding:10px 12px 12px;box-shadow:0 16px 36px #00000052}.scene-info-panel summary,.controls-legend summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:700;line-height:1.2;list-style-position:inside}.scene-info-panel p{color:#ffffffc7;margin:10px 0;font-size:.88rem;line-height:1.4}.scene-info-panel a{color:#56d4c8;width:fit-content;margin-top:7px;font-size:.86rem;font-weight:700;text-decoration:none;display:block}.scene-info-panel a:hover{text-decoration:underline}.controls-legend dl{grid-template-columns:minmax(82px,auto) 1fr;gap:8px 12px;margin:12px 0 0;display:grid}.controls-legend dt,.controls-legend dd{min-width:0;margin:0}.controls-legend dt{color:#fff;text-align:center;overflow-wrap:anywhere;background:#ffffff1f;border:1px solid #ffffff38;border-radius:6px;align-self:start;padding:2px 7px;font-size:.78rem;font-weight:700;line-height:1.35}.controls-legend dd{color:#ffffffc7;font-size:.88rem;line-height:1.35}.mobile-controls{z-index:12;pointer-events:none;touch-action:none;justify-content:space-between;align-items:end;gap:18px;display:none;position:fixed;bottom:14px;left:14px;right:14px}.mobile-joystick,.mobile-action-button,.mobile-system-button{pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.mobile-joystick{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);touch-action:none;background:radial-gradient(circle,#ffffff1f 0 25%,#0000 26%),#0c0e128f;border:1px solid #ffffff3d;border-radius:50%;flex:none;width:128px;height:128px;position:relative;box-shadow:0 18px 38px #00000052}.mobile-joystick:before,.mobile-joystick:after{content:"";background:#ffffff38;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.mobile-joystick:before{width:70%;height:1px}.mobile-joystick:after{width:1px;height:70%}.mobile-joystick-knob{background:#56d4c8d1;border:1px solid #ffffff61;border-radius:50%;width:54px;height:54px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 24px #00000057}.mobile-action-pad{grid-template-rows:34px 132px;justify-content:end;place-items:end center;gap:8px;display:grid}.mobile-action-diamond{width:142px;height:132px;position:relative}.mobile-action-button{color:#fffffff0;width:54px;height:54px;font:inherit;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);touch-action:none;background:#12151bc7;border:1px solid #ffffff3d;border-radius:50%;font-size:1rem;font-weight:900;line-height:1;position:absolute;box-shadow:0 14px 30px #00000047}.mobile-action-button:after{content:"";border:1px solid #ffffff2e;border-radius:50%;position:absolute;inset:6px}.mobile-action-button:active{color:#081315;background:#56d4c8c7;transform:translateY(2px)}.mobile-button-y{color:#181204;background:#f4c750db;top:0;left:50%;transform:translate(-50%)}.mobile-button-x{background:#5096f4db;top:39px;left:8px}.mobile-button-b{background:#e85353db;top:39px;right:8px}.mobile-button-a{color:#061609;background:#56d47edb;bottom:0;left:50%;transform:translate(-50%)}.mobile-button-y:active,.mobile-button-a:active{transform:translate(-50%)translateY(2px)}.mobile-system-button{color:#ffffffe0;min-width:74px;height:30px;font:inherit;letter-spacing:0;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);touch-action:none;background:#0c0e12a8;border:1px solid #ffffff38;border-radius:999px;padding:0 14px;font-size:.72rem;font-weight:800;box-shadow:0 12px 24px #0000003d}.mobile-system-button:active{color:#191305;background:#f4c750d6}.mobile-run-button{justify-self:center}@media (width<=520px){.side-panel-stack{width:calc(100vw - 20px);top:10px;left:10px}.scene-info-panel,.controls-legend{padding:9px 10px 10px}.controls-legend dl{grid-template-columns:minmax(74px,auto) 1fr;gap:7px 9px}}@media (hover:none),(pointer:coarse),(width<=760px){.mobile-controls{display:flex}.side-panel-stack{width:min(260px,100vw - 20px);max-height:calc(100vh - 190px)}.scene-info-panel,.controls-legend{padding:8px 10px}.scene-info-panel:not([open]),.controls-legend:not([open]){width:fit-content;max-width:100%}}@media (width<=430px){.mobile-controls{gap:12px;bottom:10px;left:10px;right:10px}.mobile-joystick{width:112px;height:112px}.mobile-joystick-knob{width:48px;height:48px}.mobile-action-pad{grid-template-rows:32px 118px;gap:7px}.mobile-action-diamond{width:128px;height:118px}.mobile-action-button{width:50px;height:50px;font-size:.92rem}.mobile-button-x,.mobile-button-b{top:34px}}
