@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400..700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&family=VT323&display=swap";body{margin:0;font-family:Arial,sans-serif}button,input{font:inherit}@font-face{font-family:Monocraft;src:url(https://cdn.jsdelivr.net/gh/IdreesInc/Monocraft@main/dist/Monocraft-ttf/Monocraft.ttf)format("truetype");font-weight:400;font-style:normal}*{image-rendering:pixelated;font-smooth:never;-webkit-font-smoothing:none;font-family:Monocraft,sans-serif;font-style:normal;font-weight:600}.game-shell,.game-shell *{cursor:none!important}.landing-page{background:#050404;flex-direction:column;justify-content:center;align-items:center;gap:48px;min-height:100vh;padding:24px;display:flex;position:relative}.landing-page>:not(canvas){z-index:1;position:relative}.landing-page:before,.landing-page:after{content:"";opacity:.4;pointer-events:none;border:1px solid #2a1e08;width:200px;height:200px;position:absolute}.landing-page:before{border-bottom:none;border-right:none;top:40px;left:40px}.landing-page:after{border-top:none;border-left:none;bottom:40px;right:40px}.landing-page__logo{flex-direction:column;align-items:center;gap:12px;display:flex}.landing-page__eyebrow{letter-spacing:6px;text-transform:uppercase;color:#6a5020;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:13px}.landing-page__title{letter-spacing:6px;text-transform:uppercase;color:#c8961e;text-shadow:0 0 20px #c8961e66,0 2px #000,2px 0 #000,-2px 0 #000;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:clamp(32px,5vw,56px);font-weight:700;line-height:1}.landing-page__divider{background:linear-gradient(90deg,#0000,#5a4010,#0000);border:none;width:120px;height:1px;margin:0}.landing-page__subtitle{letter-spacing:2px;color:#5a4020;text-align:center;max-width:400px;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:15px;line-height:1.6}.landing-page__actions{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:280px;display:flex}.landing-page__btn{color:#a08050;letter-spacing:3px;text-transform:uppercase;cursor:pointer;background:linear-gradient(#1e1810 0%,#120e08 100%);border:1px solid #4a3010;outline:none;width:100%;padding:14px 24px;font-family:Pixelify Sans,VT323,monospace;font-size:16px;transition:border-color .15s,color .15s,box-shadow .15s}.landing-page__btn:hover,.landing-page__btn:focus{color:#f0c060;border-color:#c8961e;box-shadow:0 0 12px #c8961e33}.landing-page__btn--primary{color:#c8a060;background:linear-gradient(#2a2010 0%,#1a1408 100%);border-color:#6a5020}.landing-page__btn--primary:hover,.landing-page__btn--primary:focus{color:#f0c060;border-color:#c8961e;box-shadow:0 0 16px #c8961e40}.landing-page__btn--debug{color:#4a3820;border-color:#2a2010;padding:8px 16px;font-size:12px}.landing-page__btn--debug:hover,.landing-page__btn--debug:focus{color:#6a5030;box-shadow:none;border-color:#4a3820}.auth-page{background:#050404;flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:100vh;padding:24px;display:flex;position:relative}.auth-page>:not(canvas){z-index:1;position:relative}.auth-card{background:linear-gradient(#1a1410 0%,#120e0a 60%,#0e0b08 100%);border:2px solid #5a4010;outline:1px solid #2a1e08;flex-direction:column;gap:0;width:100%;max-width:400px;padding:32px;display:flex;box-shadow:0 0 0 1px #000,inset 0 1px #c8961e1f,0 8px 40px #000000e6}.auth-card__back{color:#5a4020;letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #2a1e08;align-self:flex-start;margin-bottom:20px;padding:6px 12px;font-family:Pixelify Sans,VT323,monospace;font-size:12px;transition:border-color .1s,color .1s}.auth-card__back:hover{color:#a08050;border-color:#6a5020}.auth-card__eyebrow{letter-spacing:4px;text-transform:uppercase;color:#5a4020;margin:0 0 6px;font-family:Pixelify Sans,VT323,monospace;font-size:11px}.auth-card__title{letter-spacing:4px;text-transform:uppercase;color:#c8961e;text-shadow:0 0 12px #c8961e59;margin:0 0 8px;font-family:Pixelify Sans,VT323,monospace;font-size:28px;font-weight:700}.auth-card__description{letter-spacing:1px;color:#5a4020;border-bottom:1px solid #1e1408;margin:0 0 24px;padding-bottom:20px;font-family:Pixelify Sans,VT323,monospace;font-size:13px;line-height:1.6}.auth-card__form{flex-direction:column;gap:14px;margin-top:4px;display:flex}.auth-card__field{flex-direction:column;gap:6px;display:flex}.auth-card__field span{letter-spacing:3px;text-transform:uppercase;color:#6a5020;font-family:Pixelify Sans,VT323,monospace;font-size:11px}.auth-card__field input{color:#c8a878;letter-spacing:1px;background:#0006;border:1px solid #2a1e08;outline:none;padding:10px 12px;font-family:Pixelify Sans,VT323,monospace;font-size:15px;transition:border-color .15s}.auth-card__field input:focus{background:#c8961e0d;border-color:#c8961e}.auth-card__field input:disabled{opacity:.4;cursor:not-allowed}.auth-card__field input::placeholder{color:#3a2a10}.auth-card__message{letter-spacing:1px;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:12px}.auth-card__message--error{color:#c04030}.auth-card__submit{color:#c8a060;letter-spacing:3px;text-transform:uppercase;cursor:pointer;background:linear-gradient(#2a2010 0%,#1a1408 100%);border:1px solid #6a5020;outline:none;margin-top:6px;padding:14px 20px;font-family:Pixelify Sans,VT323,monospace;font-size:16px;transition:border-color .15s,color .15s,box-shadow .15s}.auth-card__submit:hover:not(:disabled){color:#f0c060;border-color:#c8961e;box-shadow:0 0 14px #c8961e40}.auth-card__submit:disabled{opacity:.4;cursor:not-allowed}.game-shell{width:100vw;height:100vh;position:relative;overflow:hidden}.game-shell__header{z-index:100;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:fixed;top:12px;left:12px;right:12px}.game-shell__viewport{z-index:1;position:fixed;inset:0}.game-shell__viewport canvas{width:100%;height:100%;display:block}.save-status{z-index:100003;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .15s,transform .15s;display:flex;position:fixed;bottom:20px;left:20px;transform:translateY(6px)}.save-status--saving,.save-status--saved{opacity:1;transform:translateY(0)}.save-status__icon{width:24px;height:24px;image-rendering:pixelated;filter:drop-shadow(2px 2px #000)drop-shadow(-1px -1px #000)drop-shadow(1px -1px #000)drop-shadow(-1px 1px #000)}.save-status--saving .save-status__icon{animation:.6s ease-in-out infinite alternate save-status-pulse}@keyframes save-status-pulse{0%{opacity:.65;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.top-panel{color:#fff}.top-panel__label,.top-panel__line,.settings-menu__title{margin:0}.top-panel__label,.settings-menu__title{margin-bottom:8px;font-weight:700}.top-panel__line+.top-panel__line{margin-top:4px}.settings-modal .top-panel__line{color:#907050;letter-spacing:1px;border-bottom:1px solid #1e1408;padding-bottom:6px;font-family:Pixelify Sans,VT323,monospace;font-size:14px}.top-panel--minimap{justify-content:flex-end;min-width:140px;display:flex}.top-panel--actions{align-items:center;gap:8px;display:flex}.top-panel--timer{text-align:center;position:absolute;left:50%;transform:translate(-50%)}.top-panel--hearts{min-width:140px}.top-panel--hint{text-align:center;min-width:100px}.top-panel__timer-value{color:#fff;text-shadow:2px 2px #000,-1px -1px #000,1px -1px #000,-1px 1px #000,1px 1px #000;text-transform:uppercase;opacity:.5;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:28px;font-weight:700}.top-panel__hearts{justify-content:flex-start;gap:6px;display:flex}.top-panel__heart-icon{width:32px;height:32px;image-rendering:pixelated;filter:drop-shadow(2px 2px #000)drop-shadow(-1px -1px #000)drop-shadow(1px -1px #000)drop-shadow(-1px 1px #000)}.top-panel__hint{margin:0;font-weight:700}.mini-map{background:#0c0804eb;border:2px solid #7a5c1e;padding:6px;display:inline-flex;box-shadow:0 0 0 1px #000,inset 0 0 8px #000c,0 0 10px #785a144d}.mini-map__grid{grid-template-rows:repeat(5,18px);grid-template-columns:repeat(5,18px);gap:4px;display:grid}.mini-map__cell{justify-content:center;align-items:center;width:18px;height:18px;display:flex}.mini-map__room{background:#0d0a04;border:2px solid #c8961e;width:18px;height:18px}.mini-map__room--unknown{background:#0d0a04}.mini-map__room--current{background:#1f6fe5;border-color:#6ab0ff;box-shadow:0 0 4px #1f6fe5cc}.mini-map__room--completed{background:#1a6b2a;border-color:#4caf50}.mini-map__connector{background:#c8961e}.mini-map__connector--vertical{width:4px;height:18px}.mini-map__connector--horizontal{background:#c8961e;width:18px;height:4px}.settings-modal-backdrop{z-index:100001;background:#000000bf;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.settings-modal{color:#c8a878;width:380px;image-rendering:pixelated;background:linear-gradient(#1a1410 0%,#120e0a 60%,#0e0b08 100%);border:2px solid #5a4010;outline:1px solid #2a1e08;flex-direction:column;gap:14px;padding:24px;font-family:Pixelify Sans,VT323,monospace;display:flex;box-shadow:0 0 0 1px #000,inset 0 1px #c8961e26,0 8px 32px #000000e6}.settings-modal--keyboard-only,.settings-modal-backdrop--keyboard-only{pointer-events:none}.settings-modal--leaderboard{width:480px;max-height:80vh;overflow:hidden}.settings-modal-backdrop--leaderboard,.settings-modal-backdrop--leaderboard *,.settings-modal--leaderboard,.settings-modal--leaderboard *{cursor:auto!important}.settings-modal--confirm{z-index:100002;width:340px;position:fixed}.settings-modal__header{border-bottom:1px solid #3a2a0e;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.settings-modal__title{color:#c8961e;letter-spacing:3px;text-transform:uppercase;text-shadow:0 0 12px #c8961e66;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:22px;font-weight:700}.settings-modal__close{color:#806040;cursor:pointer;background:0 0;border:1px solid #3a2a0e;padding:4px 10px;font-family:Pixelify Sans,VT323,monospace;font-size:14px}.settings-modal__close:hover{color:#c8961e;border-color:#c8961e}.settings-modal__button{color:#a08050;letter-spacing:2px;text-transform:uppercase;text-align:center;cursor:pointer;background:linear-gradient(#1e1810 0%,#150f08 100%);border:1px solid #3a2a0e;padding:12px 16px;font-family:Pixelify Sans,VT323,monospace;font-size:16px;transition:border-color .1s,color .1s}.settings-modal__button:hover{color:#c8a060;border-color:#6a5020}.settings-modal__button--selected{color:#f0c060;text-shadow:0 0 8px #c8961e80;background:linear-gradient(#2e2010 0%,#1e1408 100%);border:1px solid #c8961e;box-shadow:inset 0 0 8px #c8961e1a}.settings-modal__button--danger{color:#904030;border-color:#3a1810}.settings-modal__button--danger.settings-modal__button--selected{color:#e06050;text-shadow:0 0 8px #c83c2866;background:linear-gradient(#2e1008 0%,#1e0804 100%);border-color:#c04030;box-shadow:inset 0 0 8px #c83c281a}.settings-modal__error{color:#c04030;letter-spacing:1px;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:13px}.settings-modal__field{color:#a08050;letter-spacing:1px;background:0 0;border:1px solid #2a1e0a;padding:8px;font-family:Pixelify Sans,VT323,monospace;font-size:14px}.settings-modal__field--selected{background:#c8961e0d;border-color:#6a5020}.settings-modal__field--editing{background:#c8961e14;border-color:#c8961e}.settings-modal__field input:disabled{color:#a08050;opacity:1;background:0 0}.settings-modal__nickname-display{color:#c8a878;white-space:pre-wrap;word-break:break-word;background:#0000004d;border:1px solid #2a1e0a;align-items:center;min-height:36px;padding:6px 8px;font-family:Pixelify Sans,VT323,monospace;font-size:15px;display:flex}.settings-modal__nickname-cursor{color:#c8961e;min-width:8px;animation:1s step-end infinite settings-cursor-blink;display:inline-block}@keyframes settings-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.settings-modal__hint{letter-spacing:1px;color:#4a3820;margin:0;font-family:Pixelify Sans,VT323,monospace;font-size:12px}.leaderboard{flex-direction:column;gap:10px;display:flex}.leaderboard__filters{scrollbar-width:thin;flex-wrap:nowrap;flex:none;align-items:stretch;gap:8px;min-height:54px;padding-bottom:4px;display:flex;overflow:auto hidden}.leaderboard__filter-button{flex:0 0 120px}.leaderboard__content{flex:auto;min-height:0;overflow-y:auto}.leaderboard__filter-button--active{background:#d9d9d9;border:1px solid #000}.leaderboard__row{border:1px solid #bdbdbd;align-items:flex-start;gap:10px;padding:8px;display:flex}.leaderboard__rank,.leaderboard__name,.leaderboard__meta{margin:0}.leaderboard__rank{min-width:36px;font-weight:700}.leaderboard__body{flex-direction:column;gap:4px;display:flex}.leaderboard__name{font-weight:700}.mm-dungeon{image-rendering:pixelated;background:linear-gradient(#1a1410 0%,#120e0a 60%,#0e0b08 100%);border:2px solid #5a4010;outline:1px solid #2a1e08;flex-direction:column;gap:4px;padding:7px 9px;display:inline-flex;box-shadow:inset 0 0 12px #000000f2,0 2px 8px #000c}.mm-dungeon__title{color:#c8961e;text-align:center;letter-spacing:4px;text-transform:uppercase;border-bottom:1px solid #3a2a10;padding-bottom:3px;font-family:Pixelify Sans,VT323,monospace;font-size:10px;font-weight:700}.mm-dungeon__viewport{position:relative;overflow:hidden}.mm-dungeon__legend{border-top:1px solid #3a2a10;justify-content:space-between;gap:8px;padding-top:3px;display:flex}.mm-dungeon__legend-current{letter-spacing:1px;color:#c8961e;font-family:Pixelify Sans,VT323,monospace;font-size:9px}.mm-dungeon__legend-done{letter-spacing:1px;color:#8a7452;font-family:Pixelify Sans,VT323,monospace;font-size:9px}.dialog-layout{pointer-events:none;align-self:flex-end;align-items:flex-end;gap:20px;width:90%;max-width:1000px;margin-bottom:40px;display:flex}.dialog-avatar{width:240px;height:240px;image-rendering:pixelated;background:linear-gradient(#1a1410 0%,#120e0a 60%,#0e0b08 100%);border:2px solid #5a4010;outline:1px solid #2a1e08;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden;box-shadow:0 0 0 1px #000,inset 0 1px #c8961e26,0 10px 40px #000000e6}.dialog-avatar img{object-fit:cover;width:100%;height:100%}.dialog-modal{color:#c8a878;pointer-events:none;image-rendering:pixelated;background:linear-gradient(#1a1410 0%,#120e0a 60%,#0e0b08 100%);border:2px solid #5a4010;border-radius:0;outline:1px solid #2a1e08;flex-direction:column;flex:1;gap:16px;padding:24px;font-family:Pixelify Sans,VT323,monospace;display:flex;box-shadow:0 0 0 1px #000,inset 0 1px #c8961e26,0 10px 40px #000000e6}.dialog-modal__header{justify-content:space-between;align-items:center;display:flex}.dialog-modal__title{color:#c8961e;text-transform:uppercase;letter-spacing:2px;text-shadow:0 0 8px #c8961e59;margin:0;font-size:24px}.dialog-modal__title--boss{color:#ff2a2a;text-shadow:0 0 8px #ff2a2a59}.dialog-modal__subtitle{color:#8a7452;letter-spacing:1px;font-size:16px}.dialog-modal__text{color:#e0d0b0;min-height:60px;margin:0;font-size:22px;line-height:1.4}.dialog-modal__answers{flex-direction:column;gap:8px;margin-top:12px;display:flex}.dialog-modal__answer{color:#a08050;background:0 0;border:1px solid #3a2a10;align-items:center;padding:12px;font-size:18px;transition:all .1s;display:flex}.dialog-modal__answer--selected{color:#dcb35a;background:#2a1e08;border-color:#dcb35a;box-shadow:inset 0 0 8px #dcb35a33}.dialog-modal__answer-icon{color:#dcb35a;margin-right:8px}.dialog-modal__helper{color:#5a4020;text-align:right;letter-spacing:1px;margin-top:8px;font-size:14px}.death-screen{z-index:100;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .6s;display:flex;position:fixed;inset:0}.death-screen--holding{background:#0009}.death-screen--leaving{background:#000;transition:background .8s ease-in}.death-screen__text{color:#8b0000;letter-spacing:.25em;text-shadow:0 0 40px #b4000099,0 0 80px #7800004d;opacity:0;font-family:Palatino Linotype,Palatino,serif;font-size:clamp(3rem,8vw,6rem);transform:scaleX(1.15)scaleY(.95)}.death-screen--entering .death-screen__text{animation:1.2s cubic-bezier(.25,0,.4,1) forwards death-appear}.death-screen--holding .death-screen__text{opacity:1;transform:scaleX(1)scaleY(1)}.death-screen--leaving .death-screen__text{animation:.8s ease-in forwards death-fade}@keyframes death-appear{0%{opacity:0;filter:blur(8px);transform:scaleX(1.15)scaleY(.95)}60%{opacity:.85;filter:blur(1px);transform:scaleX(1.02)scaleY(.99)}to{opacity:1;filter:blur();transform:scaleX(1)scaleY(1)}}@keyframes death-fade{to{opacity:0;filter:blur(4px)}}
