@font-face { font-family: 'Minecraft'; src: url('Minecraft.ttf') format('truetype'); } .btn-mini { width: 56px !important; height: 56px; max-width: 56px !important; padding: 0 !important; margin: 0 !important; margin-left: 8px !important; } .btn-mini img { height: 24px; width: auto; } :root { --mc-gui-bg: #c6c6c6; --mc-progress-bg: #313131; --mc-progress-fill: #55ff55; --mc-border-dark: #555; --mc-border-light: #fff; --mc-button-bg: #6e6e6e; --mc-button-hover: #7e7e7e; } * { box-sizing: border-box; -webkit-font-smoothing: none; } body { margin: 0; padding: 0; height: 100vh; width: 100vw; display: flex; flex-direction: column; background-color: var(--mc-gui-bg); font-family: 'Minecraft', monospace; overflow: hidden; image-rendering: pixelated; -webkit-user-select: none; user-select: none; border: 2px solid #000; } .title-bar { height: 32px; background: #222; display: flex; justify-content: space-between; align-items: center; padding: 0 10px; -webkit-app-region: drag; z-index: 1000; border-bottom: 2px solid #000; } .title-bar-text { color: #aaa; font-size: 16px; text-shadow: 1px 1px 0 #000; } .window-controls { display: flex; gap: 5px; -webkit-app-region: no-drag; } .win-btn { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; padding-bottom: 2px; cursor: pointer; color: #aaa; font-size: 18px; transition: all 0.1s; } .win-btn:hover { background: #444; color: #fff; } .win-btn.close:hover { background: #c42b1c; } .main-wrapper { display: flex; flex-grow: 1; overflow: hidden; position: relative; width: 100%; } .sidebar { width: 380px; background: rgba(0, 0, 0, 0.7); border-right: 4px solid #000; display: flex; flex-direction: column; padding: 30px 20px; overflow-y: auto; z-index: 10; backdrop-filter: blur(8px); transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), padding 0.3s ease; } .sidebar.collapsed { width: 80px; padding: 30px 10px; } .sidebar.collapsed #updates-list { display: none; } .sidebar.collapsed .sidebar-title { border-bottom: none; margin-bottom: 0; justify-content: center; padding-bottom: 0; } .sidebar.collapsed #sidebar-title-text { display: none; } .sidebar.collapsed #sidebar-toggle-icon { font-size: 32px; } #sidebar-toggle-icon { font-size: 24px; font-weight: bold; cursor: pointer; transition: transform 0.2s, color 0.2s; } #sidebar-toggle-icon:hover { color: #55ff55; transform: scale(1.1); } .sidebar-title { font-size: 32px; color: #fff; text-shadow: 2px 2px 0 #000; margin-bottom: 25px; border-bottom: 2px solid #555; padding-bottom: 15px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; } .commit-author { display: flex; align-items: center; gap: 8px; } .author-img { width: 24px; height: 24px; border-radius: 4px; border: 1px solid #555; } .commit-sha { font-size: 16px !important; color: #55ff55 !important; font-family: monospace; margin-bottom: 8px !important; } .commit-msg { font-size: 15px !important; color: #eee !important; line-height: 1.4 !important; } #updates-list { display: flex; flex-direction: column; gap: 15px; } .update-item.patch-note-card { background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: none; padding: 20px; cursor: default; transition: none; margin-bottom: 20px; border-radius: 4px; } .update-item.patch-note-card:hover { outline: none; background-color: rgba(255, 255, 255, 0.08); } .pn-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; } .pn-title { color: #fff; font-size: 22px; font-weight: bold; margin-bottom: 12px; text-shadow: 1px 1px 0 #000; } .pn-body { color: #ccc; font-size: 16px; line-height: 1.6; white-space: pre-wrap; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } .pn-body li { margin-left: 15px; list-style-type: disc; } .pn-h1 { font-size: 20px; color: #fff; margin-top: 10px; } .pn-h2 { font-size: 18px; color: #fff; margin-top: 8px; } .pn-h3 { font-size: 16px; color: #fff; margin-top: 6px; } .update-tag { color: #55ff55; font-size: 20px; text-shadow: 1px 1px 0 #000; display: block; margin-bottom: 4px; } .update-name { color: #fff; font-size: 18px; display: block; margin-bottom: 4px; } .update-date { color: #aaa; font-size: 14px; } .sidebar::-webkit-scrollbar { width: 10px; } .sidebar::-webkit-scrollbar-track { background: rgba(0,0,0,0.3); } .sidebar::-webkit-scrollbar-thumb { background: #555; border: 2px solid #000; } .sidebar::-webkit-scrollbar-thumb:hover { background: #666; } .content-area { flex-grow: 1; background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), url('minecraft.jpg'); background-size: cover; background-position: center; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; height: 100%; } .splash-text { position: absolute; top: 45%; left: 90%; width: fit-content; color: #ffff00; font-size: 20px; text-shadow: 2px 2px 0 #3f3f00; transform: translate(-50%, -50%) rotate(-20deg); animation: splashBounce 0.2s infinite alternate ease-in-out; pointer-events: none; white-space: nowrap; z-index: 5; text-align: center; } @keyframes splashBounce { from { transform: translate(-50%, -50%) rotate(-20deg) scale(1); } to { transform: translate(-50%, -50%) rotate(-20deg) scale(1.1); } } .mc-logo-img { width: 650px; max-width: 95%; filter: drop-shadow(6px 6px 0px rgba(0,0,0,0.6)); margin-top: -40px; margin-bottom: 70px; transition: transform 0.3s ease; } .mc-logo-img:hover { transform: scale(1.02); } .btn-mc { width: 500px; max-width: 90%; height: 60px; background-color: var(--mc-button-bg); border: 2px solid #000; color: #e0e0e0; font-size: 24px; display: flex; align-items: center; justify-content: center; padding-bottom: 6px; cursor: pointer; box-shadow: inset -3px -3px 0px #333, inset 3px 3px 0px #aaa; margin-bottom: 16px; position: relative; transition: transform(0.05s); } .nav-item { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); position: relative; outline: none !important; } .nav-item:focus { transform: scale(1.05); z-index: 1000; box-shadow: 0 0 0 3px #fff, 0 0 20px rgba(255, 255, 255, 0.4) !important; } .nav-item.active-bump { transform: scale(0.95) !important; transition: transform 0.1s !important; } .btn-mc:hover:not(.disabled) { background-color: var(--mc-button-hover); color: #fff; outline: 2px solid #fff !important; } .btn-mc.controller-active { transform: translateY(2px) scale(0.98); } .btn-mc.disabled, .btn-mc.running { background-color: #4e4e4e; color: #888; cursor: default; box-shadow: inset -3px -3px 0px #222, inset 3px 3px 0px #666; opacity: 0.8; transform: none !important; } .btn-mc.running { color: #55ff55; text-shadow: 2px 2px 0 #000; } .btn-play { height: 96px; font-size: 44px; margin-bottom: 36px; color: #fff; text-shadow: 2px 2px 0 #000; } .version-row { display: flex; width: 500px; max-width: 90%; margin-bottom: 28px; align-items: center; } .version-label { color: white; font-size: 24px; margin-right: 15px; text-shadow: 2px 2px 0 #000; white-space: nowrap; } .version-select-box { flex-grow: 1; height: 56px; background: #000; border: 2px solid #555; display: flex; align-items: center; padding: 0 15px 6px 15px; color: white; font-size: 24px; cursor: pointer; position: relative; transition: border-color 0.2s; } .version-select-box:hover { border-color: #fff; } .select-arrow { width: 48px; height: 52px; background: #6e6e6e; border-left: 2px solid #555; display: flex; align-items: center; justify-content: center; color: white; position: absolute; right: 0; } .progress-container { position: absolute; bottom: 0; left: 0; width: 100%; height: 50px; background: rgba(0,0,0,0.9); border-top: 4px solid #000; display: none; flex-direction: column; justify-content: center; padding: 0 30px; z-index: 50; animation: slideUp 0.3s ease-out; } @keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } } .progress-bar-bg { width: 100%; height: 16px; background: var(--mc-progress-bg); border: 2px solid #000; position: relative; } .progress-bar-fill { width: 0%; height: 100%; background: var(--mc-progress-fill); box-shadow: inset 0 3px 0 rgba(255,255,255,0.4); transition: width 0.2s ease-out; } .progress-text { color: #fff; font-size: 20px; text-shadow: 2px 2px 0 #000; margin-bottom: 6px; text-align: center; } .modal-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.9); display: none; align-items: center; justify-content: center; z-index: 2000; backdrop-filter: blur(4px); } .modal-box { width: 60vw; max-width: 850px; min-width: 600px; max-height: 85vh; background: var(--mc-gui-bg); border: 4px solid #000; padding: clamp(20px, 4vw, 50px); display: flex; flex-direction: column; align-items: center; box-shadow: inset 4px 4px 0 #fff; animation: modalPop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); position: relative; overflow-y: auto; } .modal-box::-webkit-scrollbar { width: 10px; } .modal-box::-webkit-scrollbar-track { background: rgba(0,0,0,0.1); } .modal-box::-webkit-scrollbar-thumb { background: #888; border: 2px solid var(--mc-gui-bg); } .modal-close-btn { position: absolute; top: 10px; right: 15px; font-size: 32px; color: #444; cursor: pointer; transition: color 0.1s; line-height: 1; } .modal-close-btn:hover { color: #c42b1c; text-shadow: 1px 1px 0 #fff; } @keyframes modalPop { from { transform: scale(0.8); opacity: 0; } to { transform: scale(1); opacity: 1; } } .modal-title { font-size: 42px; color: #333; margin-bottom: 30px; text-shadow: 2px 2px 0 #fff; text-align: center; } .modal-body-text { color: #333; font-size: 22px; text-align: center; margin-bottom: 40px; text-shadow: 1px 1px 0 #fff; line-height: 1.6; width: 100%; } .modal-body-text b { color: #000; } .mc-input-group { width: 100%; margin-bottom: 20px; } .mc-label { display: block; color: #444; font-size: 22px; margin-bottom: 6px; } .mc-input { width: 100%; background: #000; border: 2px solid #555; color: white; padding: 12px; font-size: 22px; outline: none; transition: border-color 0.2s; } .mc-input:focus, .mc-input.focused { border-color: #fff !important; } #server-checkbox.focused { outline: 2px solid #fff; } #loader { position: absolute; inset: 0; background: rgba(0,0,0,1); display: flex; flex-direction: column; align-items: center; justify-content: center; color: white; font-size: 36px; z-index: 2000; background-image: url('minecraft.jpg'); background-size: cover; background-position: center; } #loader::before { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.8); } .loader-content { position: relative; z-index: 1; text-align: center; } .loader-spinner { width: 80px; height: 80px; border: 8px solid #333; border-top: 8px solid var(--mc-progress-fill); border-radius: 50%; margin: 0 auto 20px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .music-btn { position: fixed; bottom: 20px; right: 20px; width: 44px; height: 44px; background: var(--mc-button-bg); border: 2px solid #000; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: inset -2px -2px 0 #333, inset 2px 2px 0 #aaa; z-index: 1000; color: #fff; font-size: 24px; padding-bottom: 4px; } .music-btn:hover:not(.disabled) { background-color: var(--mc-button-hover); outline: 2px solid #fff; } .music-btn.muted { opacity: 0.6; background: #444; } .music-btn.muted #music-icon { text-decoration: line-through; } #toast { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.95); color: #fff; padding: 15px 40px; border: 3px solid #fff; font-size: 24px; display: none; z-index: 3000; text-align: center; box-shadow: 0 0 20px rgba(0,0,0,0.5); } select.hidden-select { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; } ::-webkit-scrollbar { width: 12px; } ::-webkit-scrollbar-track { background: #333; border-left: 2px solid #000; } ::-webkit-scrollbar-thumb { background: #6e6e6e; border: 2px solid #000; box-shadow: inset -2px -2px 0 #333, inset 2px 2px 0 #aaa; } ::-webkit-scrollbar-thumb:hover { background: #7e7e7e; }