@font-face{font-family:Minecraft;src:url(/font/Minecraft.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--somnia-blue: #2596be;--somnia-purple: #dd1299;--somnia-blue-dark: #1d7fa3;--somnia-surface: #13243d;--somnia-surface-soft: #1a2f4f;--somnia-text-muted: #b8c7d9;font-family:Minecraft,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,var(--somnia-surface) 0%,var(--somnia-surface-soft) 100%);color:#fff;overflow-x:hidden;font-family:Minecraft,sans-serif}#app{min-height:100vh;display:flex;flex-direction:column}a{font-weight:500;color:var(--somnia-blue);text-decoration:inherit;transition:color .2s}a:hover{color:var(--somnia-blue)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--somnia-surface)}::-webkit-scrollbar-thumb{background:var(--somnia-blue-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--somnia-blue)}::selection{background:#2596be59}*:focus{outline:2px solid var(--somnia-blue);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dev-badge{background:#f59e0b;color:#1f2937;font-size:.7em;padding:2px 6px;border-radius:4px;margin-left:8px;font-weight:700}.dev-mode-notice{margin-top:10px;padding:8px 12px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px;color:#fbbf24;font-size:.85em}.dev-mode-notice small{opacity:.9}.auth-modal-overlay{position:fixed;inset:0;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-modal-content{background:linear-gradient(135deg,var(--somnia-surface) 0%,var(--somnia-surface-soft) 100%);border-radius:16px;border:2px solid rgba(37,150,190,.55);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003;animation:modal-appear .3s ease-out;font-family:Minecraft,sans-serif}@keyframes modal-appear{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid rgba(37,150,190,.25)}.auth-modal-title{margin:0;font-size:24px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.auth-modal-close{background:none;border:none;font-size:32px;color:var(--somnia-text-muted);cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.auth-modal-close:hover{color:#fff;background-color:#ef444433;transform:scale(1.1)}.auth-modal-body{padding:24px}.auth-modal-message{margin:0;font-size:16px;line-height:1.6;color:#e5e7eb;text-align:center}.auth-modal-footer{padding:24px;display:flex;gap:16px;flex-direction:column;border-top:1px solid rgba(37,150,190,.25)}@media (min-width: 640px){.auth-modal-footer{flex-direction:row;justify-content:center}}.auth-modal-primary-btn,.auth-modal-secondary-btn{padding:12px 24px;font-size:16px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s ease;border:2px solid transparent;min-width:180px;text-align:center}.auth-modal-primary-btn{background:linear-gradient(135deg,var(--somnia-blue-dark) 0%,var(--somnia-blue) 100%);color:#fff;border-color:var(--somnia-blue-dark)}.auth-modal-primary-btn:hover{background:linear-gradient(135deg,var(--somnia-blue) 0%,var(--somnia-purple) 100%);transform:translateY(-2px);box-shadow:0 8px 16px #2596be59}.auth-modal-secondary-btn{background:transparent;color:#d1d5db;border-color:#6b7280}.auth-modal-secondary-btn:hover{background-color:#6b728033;color:#fff;border-color:#9ca3af;transform:translateY(-1px)}.auth-modal-primary-btn:active,.auth-modal-secondary-btn:active{transform:translateY(0)}.auth-modal-primary-btn:disabled,.auth-modal-secondary-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.upgrade-modal-overlay{position:fixed;inset:0;background-color:#0a0a0fd9;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.upgrade-modal-content{background:linear-gradient(145deg,var(--somnia-surface),var(--somnia-surface-soft));border:2px solid rgba(37,150,190,.55);border-radius:16px;padding:32px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 0 30px #2596be59;color:#fff;position:relative;font-family:Minecraft,sans-serif}.upgrade-modal-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:var(--somnia-purple);cursor:pointer;padding:4px}.upgrade-modal-close:hover{color:#fff}.upgrade-header{text-align:center;margin-bottom:24px}.upgrade-title{font-size:28px;font-weight:700;margin:0;background:linear-gradient(to right,var(--somnia-blue),var(--somnia-purple));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.upgrade-subtitle{color:var(--somnia-text-muted);font-size:14px;margin-top:8px}.upgrade-section{margin-bottom:24px}.upgrade-section h3{font-size:20px;color:var(--somnia-purple);border-bottom:1px solid rgba(37,150,190,.3);padding-bottom:8px;margin-bottom:16px}.upgrade-list{display:flex;flex-direction:column;gap:12px}.upgrade-item{display:flex;justify-content:space-between;align-items:center;background:#0003;border:1px solid rgba(37,150,190,.25);border-radius:12px;padding:16px;transition:all .2s}.upgrade-item:hover{background:#2596be1f;border-color:#a78bfa8c}.upgrade-info{display:flex;flex-direction:column;gap:4px}.upgrade-name{font-weight:600;font-size:16px}.upgrade-desc{color:var(--somnia-text-muted);font-size:13px}.upgrade-level{font-size:12px;background:#a78bfa38;color:#e3d9ff;padding:2px 8px;border-radius:12px;display:inline-block;margin-top:4px;width:fit-content}.upgrade-action{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.upgrade-cost{font-weight:700;color:#fca5a5;font-size:14px}.upgrade-button{background:linear-gradient(145deg,var(--somnia-blue-dark),var(--somnia-purple));color:#fff;border:none;padding:8px 16px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.upgrade-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2596be59}.upgrade-button:disabled{background:#374151;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.loading-text{text-align:center;color:var(--somnia-text-muted);padding:20px}.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--somnia-surface) 0%,var(--somnia-surface-soft) 100%);color:#fff;font-family:Minecraft,sans-serif}.container{max-width:1200px;margin:0 auto;padding:0 20px;width:100%}.app-header{background:#13243deb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(37,150,190,.35);padding:1rem 0;position:sticky;top:0;z-index:100}.app-header .container{display:flex;justify-content:space-between;align-items:center}.app-title{font-size:2.15rem;font-weight:900;margin:0;background:linear-gradient(45deg,var(--somnia-blue),var(--somnia-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px}.auth-section{display:flex;align-items:center}.app-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 0}.game-container{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 25px 50px -12px #00000040;border:2px solid rgba(37,150,190,.35);background:#1a1a2e}.game-canvas{display:block;width:100%;height:auto}.loading-overlay{position:absolute;inset:0;background:#13243de6;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-spinner{font-size:1.2rem;color:var(--somnia-blue);animation:pulse 2s infinite}.auth-component{display:flex;align-items:center;gap:1rem}.login-btn,.logout-btn,.register-username-btn{background:linear-gradient(45deg,var(--somnia-blue),var(--somnia-purple));border:none;border-radius:8px;color:#fff;padding:.5rem 1rem;font-size:.9rem;font-weight:800;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block}.login-btn:hover,.register-username-btn:hover{background:linear-gradient(45deg,var(--somnia-blue-dark),var(--somnia-purple));transform:translateY(-1px);box-shadow:0 4px 12px #2596be59}.logout-btn{background:#ef4444cc;font-size:.8rem;padding:.4rem .8rem}.logout-btn:hover{background:#ef4444}.user-info{display:flex;align-items:center;gap:1rem}.welcome{color:var(--somnia-purple);font-weight:900;font-size:1.1rem}.no-username{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.address{font-size:.9rem;color:var(--somnia-blue);font-family:Minecraft,monospace;font-weight:700}.error{color:#ef4444;font-size:.9rem}.loading{color:var(--somnia-text-muted);font-size:.9rem}.app-footer{background:#13243dd9;border-top:1px solid rgba(37,150,190,.35);padding:1.5rem 0;margin-top:auto}.app-footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-text{margin:0;color:var(--somnia-text-muted);font-size:.9rem}.footer-text a,.footer-text a:hover{color:var(--somnia-purple)}.footer-links{display:flex;gap:1.5rem}.footer-link{color:var(--somnia-purple);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s}.footer-link:hover{color:var(--somnia-purple);text-decoration:underline}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){.app-header .container{flex-direction:column;gap:1rem}.app-title{font-size:1.5rem}.app-footer .container{flex-direction:column;text-align:center}.no-username{align-items:center}.game-container{max-width:100vw;margin:0 -20px;border-radius:0;border-left:none;border-right:none}}@media (max-width: 480px){.container{padding:0 15px}.user-info{flex-direction:column;gap:.5rem}}
