body{margin:0;background-color:#0d0d0f;display:flex;justify-content:center;align-items:flex-start;min-height:100vh;font-family:Courier New,Courier,monospace;color:#eee;padding:32px 24px 48px;box-sizing:border-box}.github-link{position:fixed;top:18px;right:24px;padding:10px 16px;border-radius:999px;border:1px solid #2f2f36;background:#14141cd9;color:#f2f2f7;font-size:13px;text-decoration:none;letter-spacing:.5px;font-weight:600;box-shadow:0 8px 25px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .2s ease,color .2s ease}.github-link:hover{border-color:#3f8cff;color:#8ecbff}canvas{background-color:#222;display:block;max-width:100%;height:auto}.game-container{display:flex;align-items:flex-start;justify-content:center;gap:24px;width:min(1200px,100%)}.stage-wrapper{flex:1 1 auto;width:100%;max-width:720px;min-width:0;min-height:520px;padding:24px;background:#111115;border:1px solid #1f1f24;border-radius:12px;box-shadow:0 15px 40px #00000073;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px}.info-panel{flex:0 0 260px;max-height:80vh;background-color:#1a1a1a;color:#ccc;font-size:14px;padding:15px;line-height:1.6;box-sizing:border-box;border-radius:8px;border:1px solid #282828;overflow-y:auto;position:sticky;top:32px;display:flex;flex-direction:column;gap:12px}.info-panel__content{overflow-wrap:anywhere}.info-panel__title{margin:0;font-size:16px;letter-spacing:1px}.info-panel__divider{border:none;border-top:1px solid #2a2a2a;margin:6px 0 10px}.info-panel__stats{margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.info-panel__stat{display:flex;justify-content:space-between;gap:8px;font-size:13px}.info-panel__stat-label{font-weight:600;color:#f4f4f4;margin:0}.info-panel__stat-value{margin:0;color:#c4c4c4;text-align:right}.info-panel__section{margin-top:12px}.info-panel__section-title{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:#fefefe}.info-panel__line-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.info-panel__line{margin:0;padding:4px 6px;border-radius:4px;border:1px solid #1f1f26;background:#111417;font-family:Courier New,Courier,monospace;font-size:13px;color:#d9d9d9}.info-panel__line--hovered{font-weight:600;box-shadow:0 0 8px #ffffff59}.info-panel__line--proved{font-weight:600;background:#4caf5014}.info-panel__line--unexpected{font-weight:600;background:#ff4d4f14}.info-panel__empty{margin:0;font-size:13px;opacity:.6}.info-panel__actions{display:flex;flex-direction:column;gap:8px}.info-panel__button{width:100%;border:1px solid #2f2f36;background:#27272f;color:#f2f2f7;border-radius:6px;padding:10px 12px;font-size:13px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.info-panel__button:hover{background:#31313a;border-color:#3f8cff}.info-panel__button:disabled{opacity:.5;cursor:not-allowed}.info-panel__button--accent{background:#3f8cff;border-color:#3f8cff;color:#050506}.backup-panel{width:220px;background-color:#111;color:#eee;font-size:12px;padding:12px;box-sizing:border-box;border:1px solid #222;border-radius:8px;max-height:80vh;overflow-y:auto;position:sticky;top:32px}.backup-panel__title{margin:0 0 8px;font-size:14px;letter-spacing:1px}.backup-panel__list{display:flex;flex-direction:column;gap:8px}.backup-panel__empty{opacity:.65;font-size:12px}.backup-card{border:1px solid #333;background-color:#1a1a1a;padding:6px;color:#eee;text-align:left;cursor:pointer;border-radius:4px;display:block;width:100%;font:inherit}.backup-card--active{border-color:#0ff}.backup-card__thumbnail{width:100%;border-radius:3px;display:block;margin-bottom:4px}.backup-card__footer{font-size:11px;opacity:.75}.app-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:24px;box-sizing:border-box}.app-modal{width:min(640px,100%);background:#141418;border:1px solid #2a2a33;border-radius:12px;padding:20px;box-shadow:0 25px 50px #0009;display:flex;flex-direction:column;gap:12px}.app-modal h3{margin:0;font-size:18px;color:#7ae7ff}.app-modal p{margin:0;font-size:13px;color:#bbb}.app-modal textarea{min-height:220px;background:#0b0b0f;border:1px solid #30303a;border-radius:6px;color:#f5f5ff;padding:12px;font-family:Courier New,Courier,monospace;font-size:13px;box-sizing:border-box;resize:vertical}.app-modal__actions{display:flex;justify-content:flex-end;gap:10px}.app-modal__button{border:1px solid #3a3a40;background:#23232a;color:#f4f4f9;padding:8px 16px;border-radius:6px;cursor:pointer}.app-modal__button--primary{background:#3f8cff;border-color:#3f8cff;color:#050506}.mobile-controls{display:none;width:min(100%,440px);padding:14px 16px;border-radius:12px;border:1px solid #25252a;background:#08080ce6;box-shadow:0 10px 35px #00000073;color:#e8e8f2;align-self:center;flex-direction:column;gap:12px}.mobile-controls__label{width:100%;margin:0;font-size:13px;letter-spacing:.4px;text-transform:uppercase;opacity:.7}.mobile-controls__body{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;flex-wrap:nowrap}.mobile-controls__dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,48px);gap:6px}.mobile-controls__dpad-button{width:48px;height:48px;border-radius:12px;border:1px solid #36363f;background:#1a1a22;color:#e4e4f5;font-size:18px;font-weight:600}.mobile-controls__dpad-button--up{grid-column:2 / 3}.mobile-controls__dpad-button--left{grid-row:2 / 3;grid-column:1 / 2}.mobile-controls__dpad-button--right{grid-row:2 / 3;grid-column:3 / 4}.mobile-controls__dpad-button--down{grid-column:2 / 3;grid-row:3 / 4}.mobile-controls__actions{display:flex;flex-direction:column;align-items:center;gap:12px}.mobile-controls__action-button{width:54px;height:54px;border-radius:50%;border:1px solid #41414b;background:radial-gradient(circle at 30% 30%,#4f7dff,#3240ff);color:#050506;font-size:22px;font-weight:700;box-shadow:0 6px 15px #00000073}.mobile-controls button:active{transform:translateY(1px)}body.mobile-landscape{padding:16px 12px 28px;align-items:center}body.mobile-landscape .game-container{display:grid;width:100%;max-width:1200px;grid-template-columns:minmax(150px,220px) minmax(0,1fr) minmax(180px,260px);gap:12px;align-items:start;justify-items:center}body.mobile-landscape .stage-wrapper{grid-column:2;width:min(100%,600px,max(0px,calc(100vh - 160px)));max-width:none;min-height:auto;padding:10px}body.mobile-landscape .stage-wrapper canvas{max-width:100%;height:auto;width:auto;max-height:calc(100vh - 250px)}body.mobile-landscape .backup-panel,body.mobile-landscape .info-panel{position:static;width:100%;max-width:none;max-height:calc(100vh - 160px);overflow-y:auto}body.mobile-landscape .backup-panel{grid-column:1;justify-self:stretch}body.mobile-landscape .info-panel{grid-column:3;justify-self:stretch}
