@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../assets/fonts/PixelifySans-Regular.woff2)format("woff2")}:root{--font-display:"Pixelify Sans", monospace, sans-serif;--font-readable:"Pixelify Sans", monospace, sans-serif;--font-mono:ui-monospace, Consolas, "Courier New", monospace}#ui-stage{pointer-events:none;color:#f4f4f4;font-family:var(--font-readable);font-size:max(13px, calc(var(--u) * 8px));line-height:1.3;position:absolute;overflow:hidden}#ui-stage button,#ui-stage input,#ui-stage textarea,#ui-stage select,#ui-stage label,#ui-stage summary,#ui-stage [role=dialog],#ui-stage .ui-block{pointer-events:auto}#ui-stage :focus-visible{outline-offset:2px;outline:3px solid #ffcd75}pre,code,kbd,samp{font-family:var(--font-mono)}img{image-rendering:pixelated}.ui-portrait-notice{z-index:30;color:#f4f4f4;max-width:calc(100vw - 32px);font-family:var(--font-display);pointer-events:auto;background:#1a1c2c;border:2px solid #ffcd75;align-items:center;gap:10px;padding:8px 10px;font-size:14px;font-weight:700;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 3px #0d0e17}.ui-portrait-close{color:#f4f4f4;min-width:28px;min-height:28px;font:inherit;cursor:pointer;background:#333c57;border:2px solid #566c86;padding:0}.ui-portrait-close:hover{background:#434e70}.ui-portrait-close:active{transform:translateY(1px)}.ui-portrait-close:focus-visible{outline-offset:2px;outline:3px solid #ffcd75}.ui-portrait-close:disabled{opacity:.45;cursor:not-allowed;transform:none}.ui-panel{padding:calc(var(--u) * 6px);box-sizing:border-box;background:linear-gradient(#262b44f5 0%,#1a1c2cfa 100%);border:2px solid #1a1c2c;border-radius:0;overflow:auto;box-shadow:0 0 0 2px #566c86,0 4px #0d0e17,inset 0 1px #ffffff26}.ui-btn{min-height:36px;font-family:var(--font-display);font-size:max(12px, calc(var(--u) * 8px));letter-spacing:.5px;text-transform:uppercase;cursor:pointer;color:#f4f4f4;box-sizing:border-box;text-shadow:1px 1px #1a1c2c;-webkit-user-select:none;user-select:none;background:#333c57;border:2px solid #1a1c2c;border-radius:0;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:700;text-decoration:none;transition:background 80ms,box-shadow 80ms,transform 80ms;display:inline-flex;box-shadow:inset 0 2px #566c86,inset 0 -2px #202638,0 3px #0d0e17}.ui-btn:hover:not(:disabled):not([aria-disabled=true]){color:#fff;background:#434e70;box-shadow:inset 0 2px #6b84a3,inset 0 -2px #283149,0 3px #0d0e17}.ui-btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(2px);box-shadow:inset 0 2px #1a1c2c,inset 0 -1px #566c86,0 1px #0d0e17}.ui-btn--primary{color:#1a1c2c;text-shadow:none;background:#ffcd75;border-color:#1a1c2c;font-weight:700;box-shadow:inset 0 2px #ffe9a8,inset 0 -2px #ef7d57,0 3px #1a1c2c}.ui-btn--primary:hover:not(:disabled):not([aria-disabled=true]){color:#1a1c2c;background:#ffe9a8;box-shadow:inset 0 2px #fff,inset 0 -2px #f0956b,0 3px #1a1c2c}.ui-btn--primary:active:not(:disabled):not([aria-disabled=true]){transform:translateY(2px);box-shadow:inset 0 2px #ef7d57,0 1px #1a1c2c}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;color:#94b0c2;background:#272c3d;box-shadow:inset 0 2px #333c57,0 2px #0d0e17;transform:none!important}.ui-field{margin-bottom:calc(var(--u) * 3px);flex-direction:column;display:flex}.ui-field label{font-family:var(--font-display);font-size:max(11px, calc(var(--u) * 7.5px));letter-spacing:.5px;text-transform:uppercase;color:#ffcd75;text-shadow:1px 1px #1a1c2c;margin-bottom:2px;font-weight:700}.upload-modal .ui-field label,.upload-modal label[for=up-code]{text-transform:none}.ui-field input,.ui-field textarea,.ui-field select{color:#f4f4f4;box-sizing:border-box;width:100%;min-height:32px;font-family:var(--font-readable);font-size:max(13px, calc(var(--u) * 8px));background:#0f1019;border:2px solid #333c57;border-radius:0;padding:4px 8px;box-shadow:inset 0 2px #07080e}.ui-field textarea{font-family:var(--font-mono)}.ui-field input[type=password]{font-family:system-ui,-apple-system,sans-serif}.ui-field input:focus,.ui-field textarea:focus,.ui-field select:focus{outline-offset:1px;background:#151825;border-color:#ffcd75;outline:2px solid #ffcd75}.ui-msg{min-height:1.4em;font-size:max(11px, calc(var(--u) * 7px));box-sizing:border-box;margin:3px 0;line-height:1.25}.ui-msg.ok{color:#a7f070;background:#38b7642e;border:1px solid #38b764;padding:2px 6px}.ui-msg.error{color:#ff9a9a;background:#b13e5338;border:1px solid #b13e53;padding:2px 6px}.ui-code{font-family:var(--font-mono)}.ui-title{font-family:var(--font-display);font-size:max(22px, calc(var(--u) * 18px));text-align:center;color:#ffcd75;text-shadow:2px 2px #1a1c2c;margin:0}.login-title-marquee{text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:calc(var(--u) * 1px);flex-direction:column;display:flex}.login-badge{padding:calc(var(--u) * 1px) calc(var(--u) * 5px);color:#ffcd75;font-family:var(--font-display);font-size:max(8px, calc(var(--u) * 6.5px));letter-spacing:calc(var(--u) * 1.5px);text-transform:uppercase;margin-bottom:calc(var(--u) * 1px);background:#1a1c2c;border:1px solid #ffcd75;font-weight:700;display:inline-block;box-shadow:0 2px #0d0e17}.login-hero-title{font-family:var(--font-display);font-size:max(16px, calc(var(--u) * 22px));letter-spacing:calc(var(--u) * 2px);color:#ffcd75;text-shadow:-2px -2px #1a1c2c,2px -2px #1a1c2c,-2px 2px #1a1c2c,2px 2px #1a1c2c,0 3px #ef7d57,0 5px #b13e53,0 7px #1a1c2c;margin:0;font-weight:700;line-height:1.05}.login-subtitle{margin:calc(var(--u) * 1px) 0 0 0;padding:calc(var(--u) * 1px) calc(var(--u) * 6px);color:#f4f4f4;font-family:var(--font-display);font-size:max(9px, calc(var(--u) * 7.5px));letter-spacing:.5px;background:#1a1c2ce0;border:1px solid #566c86;box-shadow:0 2px #0d0e17}.auth-card{padding:calc(var(--u) * 5px) calc(var(--u) * 7px);box-sizing:border-box;flex-direction:column;display:flex;overflow:hidden}.auth-card-header{align-items:center;gap:calc(var(--u) * 4px);margin-bottom:calc(var(--u) * 2px);padding-bottom:calc(var(--u) * 2px);border-bottom:2px solid #333c57;display:flex}.auth-card-indicator{width:max(6px, calc(var(--u) * 7px));height:max(6px, calc(var(--u) * 7px));background:#a7f070;border:1px solid #1a1c2c;display:inline-block;box-shadow:0 0 3px #a7f070}.auth-card-title{font-family:var(--font-display);font-size:max(11px, calc(var(--u) * 10px));letter-spacing:.5px;color:#ffcd75;text-shadow:1px 1px #1a1c2c;text-transform:uppercase;flex:1;margin:0;font-weight:700}.auth-card-badge{font-family:var(--font-display);font-size:max(8px, calc(var(--u) * 5.5px));color:#94b0c2;letter-spacing:1px}.auth-mode-tabs{margin-bottom:calc(var(--u) * 3px);background:#141622;border:2px solid #1a1c2c;gap:3px;padding:2px;display:flex;box-shadow:inset 0 2px #0d0e17}.auth-tab-btn{min-height:max(22px, calc(var(--u) * 16px));color:#94b0c2;cursor:pointer;font-family:var(--font-display);font-size:max(9px, calc(var(--u) * 7.5px));letter-spacing:.5px;text-transform:uppercase;background:#272d42;border:2px solid #1a1c2c;border-radius:0;flex:1;font-weight:700;transition:background 80ms,color 80ms;box-shadow:inset 0 2px #333c57,0 2px #0d0e17}.auth-tab-btn:hover:not([aria-pressed=true]){color:#f4f4f4;background:#333c57;box-shadow:inset 0 2px #566c86,0 2px #0d0e17}.auth-tab-btn[aria-pressed=true]{color:#1a1c2c;background:#ffcd75;border-color:#1a1c2c;box-shadow:inset 0 2px #ffe9a8,inset 0 -2px #ef7d57,0 2px #1a1c2c}.auth-tab-btn:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #1a1c2c,0 0 #0d0e17}.auth-tab-btn:disabled{opacity:.55;cursor:not-allowed;color:#94b0c2;background:#272c3d;transform:none;box-shadow:inset 0 2px #333c57}.auth-card .ui-field{margin-bottom:calc(var(--u) * 2px)}.auth-card .ui-field label{font-size:max(9px, calc(var(--u) * 7.5px));margin-bottom:1px}.auth-card .ui-field input{min-height:max(22px, calc(var(--u) * 18px));font-size:max(11px, calc(var(--u) * 8px));padding:2px 6px}.auth-card .ui-msg{min-height:max(16px, calc(var(--u) * 12px));margin:calc(var(--u) * 1px) 0;font-size:max(9px, calc(var(--u) * 6.5px))}.auth-submit-btn{margin-top:calc(var(--u) * 2px);min-height:max(26px, calc(var(--u) * 20px));font-size:max(11px, calc(var(--u) * 8.5px))}.char-title{color:#ffcd75;font-family:var(--font-display);font-size:max(15px, calc(var(--u) * 11px));margin:0 0 8px}.char-locked-title{font-size:max(11px, calc(var(--u) * 7px));margin:4px 0 2px}.char-submit-btn{width:100%}.char-avatar-fieldset{padding:calc(var(--u) * 4px);margin-bottom:calc(var(--u) * 6px);border:1px solid #333c57}.char-avatar-fieldset legend{font-size:max(11px, calc(var(--u) * 7px));color:#ffcd75;padding:0 4px}.char-radio-group{gap:16px;margin-top:4px;display:flex}.char-radio-label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.char-locked-grid{margin-bottom:calc(var(--u) * 6px);grid-template-columns:1fr 1fr;gap:4px;display:grid}.char-locked-btn{min-height:28px;font-size:max(10px, calc(var(--u) * 6px));justify-content:flex-start;padding:0 4px}.char-locked-btn img{width:14px;height:14px}.hud{align-items:center;gap:calc(var(--u) * 8px);padding:0 calc(var(--u) * 8px);box-sizing:border-box;font-family:var(--font-display);font-size:max(11px, calc(var(--u) * 7.5px));letter-spacing:.5px;color:#f4f4f4;white-space:nowrap;background:#1a1c2ce0;border-bottom:2px solid #1a1c2c;font-weight:700;display:flex}.hud-item{align-items:center;gap:4px;display:inline-flex}.hud-item img{width:auto;height:calc(var(--u) * 12px);max-height:16px}.hud-xp-bar{width:calc(var(--u) * 56px);height:calc(var(--u) * 8px);vertical-align:middle;background:#333c57;border:1px solid #1a1c2c;min-width:40px;min-height:6px;display:inline-block;overflow:hidden}.hud-xp-fill{background:#a7f070;height:100%;transition:width .3s}.hud-pending{color:#ffcd75;font-weight:700}.hud-logout-btn{min-height:calc(var(--u) * 16px);padding:0 calc(var(--u) * 6px);font-size:max(10px, calc(var(--u) * 6.5px));margin-left:auto}.audio-control{align-items:center;gap:calc(var(--u) * 4px);box-sizing:border-box;font-family:var(--font-display);white-space:nowrap;display:inline-flex}.hud .audio-control{margin-left:auto}.audio-control--loose{left:calc(var(--u) * 8px);bottom:calc(var(--u) * 8px);width:auto;height:auto;padding:calc(var(--u) * 2px) calc(var(--u) * 4px);background:#1a1c2cd1;border:1px solid #4a5462;position:absolute;box-shadow:0 1px #12131e}.hud .audio-control~.hud-logout-btn{margin-left:calc(var(--u) * 6px)}.audio-toggle{min-height:max(24px, calc(var(--u) * 16px));padding:0 calc(var(--u) * 6px);font-size:max(10px, calc(var(--u) * 6.5px))}.audio-toggle[aria-pressed=true]{color:#a7f070}.audio-volume{width:calc(var(--u) * 48px);min-width:52px;height:max(24px, calc(var(--u) * 14px));accent-color:#ffcd75;cursor:pointer;margin:0}.audio-volume:disabled{opacity:.5;cursor:not-allowed}.audio-readout{min-width:calc(var(--u) * 18px);font-size:max(9px, calc(var(--u) * 6px));color:#ffcd75;text-align:right}.desk-label{justify-content:center;align-items:center;gap:calc(var(--u) * 1px);pointer-events:none;border:max(1px, calc(var(--u) * 1px)) solid #ffcd75;color:#f4f4f4;font-family:var(--font-display);white-space:nowrap;padding:calc(var(--u) * 1px) calc(var(--u) * 2px);box-sizing:border-box;background:#1a1c2cf0;border-radius:0;flex-direction:column;line-height:1.1;display:flex;overflow:hidden;box-shadow:0 2px #0d0e17}.desk-label.is-locked{border-color:#566c86}.desk-label-name{text-overflow:ellipsis;max-width:100%;font-size:max(calc(var(--u) * 9px), min(9px, calc(var(--u) * 9.5px)));letter-spacing:0;color:#ffe9a8;text-shadow:1px 1px #1a1c2c;font-weight:700;display:block;overflow:hidden}.desk-label.is-locked .desk-label-name{color:#c2c3c7}.desk-label-stars{gap:1px;display:inline-flex}.desk-label-stars img{width:calc(var(--u) * 7px);height:calc(var(--u) * 7px)}.dialog-box{gap:calc(var(--u) * 3px);flex-direction:column;display:flex}.dialog-content{flex-direction:column;flex:1;justify-content:center;display:flex;overflow:auto}.dialog-text{font-family:var(--font-display);font-size:max(16px, calc(var(--u) * 12px));margin:0;line-height:1.4}.dialog-code{font-family:var(--font-mono);margin:calc(var(--u) * 3px) 0 0 0;padding:calc(var(--u) * 3px) calc(var(--u) * 5px);color:#a7f070;font-size:max(14px, calc(var(--u) * 10px));white-space:pre;background:#1a1c2c;border:1px solid #333c57;line-height:1.25;overflow-x:auto}.dialog-actions,.tree-actions,.mg-actions{justify-content:flex-end;gap:calc(var(--u) * 4px);display:flex}.dialog-box--has-code .dialog-content{justify-content:flex-start}.dialog-box--has-code .dialog-text{flex-shrink:0}.dialog-box--has-code .dialog-code{font-size:max(11px, calc(var(--u) * 8px));margin:calc(var(--u) * 2px) 0 0 0;padding:calc(var(--u) * 2px) calc(var(--u) * 4px);line-height:1.22}.tree-panel{gap:calc(var(--u) * 4px);flex-direction:column;display:flex}.tree-header-row{justify-content:space-between;align-items:center;gap:calc(var(--u) * 4px);display:flex}.tree-boss-trophy{font-family:var(--font-display);font-size:max(13px, calc(var(--u) * 10px));letter-spacing:.5px;text-transform:uppercase;color:#ffcd75;padding:calc(var(--u) * 1px) calc(var(--u) * 6px);text-shadow:1px 1px #1a1c2c;background:#1a1c2c;border:1px solid #ffcd75;align-items:center;gap:4px;font-weight:700;display:inline-flex;box-shadow:0 2px #0d0e17}.tree-title,.mg-title{font-family:var(--font-display);font-size:max(15px, calc(var(--u) * 11px));letter-spacing:.5px;text-transform:uppercase;color:#ffcd75;text-shadow:1px 1px #1a1c2c;margin:0;font-weight:700}.tree-grid{align-items:center;gap:calc(var(--u) * 3px);grid-template-rows:auto auto;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;display:grid}.tree-arrow{color:#94b0c2;font-size:max(14px, calc(var(--u) * 10px));text-align:center}.tree-node{min-height:calc(var(--u) * 40px);padding:calc(var(--u) * 3px);color:#f4f4f4;font-family:var(--font-display);font-size:max(13px, calc(var(--u) * 9px));text-align:center;cursor:pointer;box-sizing:border-box;background:#333c57;border:2px solid #94b0c2;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:background 80ms,border-color 80ms,box-shadow 80ms,transform 80ms;display:flex}.tree-node:hover:not(:disabled){background:#434e70;border-color:#f4f4f4;box-shadow:inset 0 2px #566c86}.tree-node:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #1a1c2c}.tree-node:disabled{opacity:.55;cursor:not-allowed;transform:none}.tree-node-title{font-weight:700}.tree-node-stars{align-items:center;gap:1px;display:inline-flex}.tree-node-stars img{width:calc(var(--u) * 8px);height:calc(var(--u) * 8px);min-width:10px;min-height:10px}.tree-node.is-locked{color:#94b0c2;background:#1a1c2c;border-color:#566c86}.tree-node.is-open{border-color:#ffcd75}.tree-node.is-done{background:#257179;border-color:#38b764}.tree-node.is-selected{outline-offset:1px;outline:2px solid #f4f4f4}.tree-detail{min-height:calc(var(--u) * 40px);padding:calc(var(--u) * 3px) calc(var(--u) * 4px);border:1px solid #333c57;flex:1}.tree-detail-title{font-size:max(14px, calc(var(--u) * 10px));color:#ffcd75;margin:0 0 2px}.tree-detail-text{margin:0 0 4px}.tree-detail-req{color:#ff9a9a}.mg-panel{gap:calc(var(--u) * 3px);flex-direction:column;display:flex}.mg-panel:focus,.mg-panel:focus-visible{outline:none}.mg-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.mg-exit{min-height:28px}.mg-prompt,.mg-counter,.mg-feedback,.mg-saving,.mg-result-line{margin:0}.mg-counter{color:#94b0c2}.mg-body{gap:calc(var(--u) * 4px);flex-direction:column;flex:1;display:flex}.mg-item{padding:calc(var(--u) * 8px);color:#a7f070;font-size:max(20px, calc(var(--u) * 16px));text-align:center;background:#1a1c2c;border:2px solid #333c57}.mg-choices{gap:calc(var(--u) * 6px);grid-template-columns:1fr 1fr;display:grid}.mg-choice{min-height:calc(var(--u) * 28px);font-size:max(14px, calc(var(--u) * 9px))}.mg-feedback{min-height:1.3em}.mg-feedback.is-ok,.mg-result-msg.is-ok{color:#a7f070}.mg-feedback.is-bad,.mg-result-msg.is-bad{color:#ff9a9a}.mg-lines{flex-direction:column;gap:2px;display:flex}.mg-line{width:100%;min-height:max(22px, calc(var(--u) * 13px));color:#f4f4f4;font-size:max(12px, calc(var(--u) * 7px));text-align:left;cursor:pointer;box-sizing:border-box;white-space:pre;background:#1a1c2c;border:2px solid #333c57;justify-content:flex-start;align-items:center;gap:8px;padding:1px 8px;transition:background 80ms,border-color 80ms,box-shadow 80ms,transform 80ms;display:flex}.mg-line:hover:not(:disabled):not([aria-pressed=true]){background:#272d42;border-color:#566c86}.mg-line:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 2px #0d0e17}.mg-line-num{color:#566c86;text-align:right;min-width:1.5em}.mg-line[aria-pressed=true]{background:#333c57;border-color:#ffcd75}.mg-line:disabled{cursor:default;opacity:.75;transform:none}.mg-line.is-correct{color:#1a1c2c;opacity:1;background:#38b764;border-color:#38b764}.mg-line.is-wrong{color:#f4f4f4;opacity:1;background:#b13e53;border-color:#b13e53}.mg-line.is-correct .mg-line-num,.mg-line.is-wrong .mg-line-num{color:inherit}.mg-submit{align-self:flex-end}.mg-saving{align-items:center;gap:8px;display:flex}.mg-result{align-items:center;gap:calc(var(--u) * 4px);text-align:center;flex-direction:column;display:flex}.mg-stars{gap:calc(var(--u) * 6px);display:flex}.mg-stars img{width:calc(var(--u) * 28px);height:calc(var(--u) * 28px);min-width:32px;min-height:32px}.mg-result-msg{font-size:max(18px, calc(var(--u) * 13px));margin:0;font-weight:700}.mg-result-xp{color:#ffcd75;font-weight:700}.idle-back-btn{min-height:0;padding:0 calc(var(--u) * 4px);font-size:max(11px, calc(var(--u) * 6.5px))}.stage-bar{gap:calc(var(--u) * 3px);padding:calc(var(--u) * 3px);box-sizing:border-box;background:#1a1c2cd9;border-top:2px solid #f4f4f4;display:flex}.stage-seg{box-sizing:border-box;background:#333c57;border:2px solid #566c86;flex:1 1 0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.stage-seg:last-child{border-color:#b13e53;flex-grow:1.4}.stage-seg-fill{background:#38b764;width:0%;position:absolute;inset:0 auto 0 0}.stage-seg-label{font-family:var(--font-display);font-size:max(10px, calc(var(--u) * 7.5px));letter-spacing:.5px;color:#f4f4f4;text-shadow:1px 1px #1a1c2c;white-space:nowrap;font-weight:700;position:relative}.stage-seg.is-current{border-color:#ffcd75}.stage-seg.is-done{border-color:#38b764}.stage-seg.is-done .stage-seg-fill{background-color:#257179}.stage-seg.is-done.is-current .stage-seg-fill{background-color:#38b764}.stage-seg-replay{color:#a7f070;font-family:var(--font-display);font-size:max(11px, calc(var(--u) * 7px));text-shadow:1px 1px #1a1c2c;text-transform:none;white-space:nowrap;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:700;position:absolute;inset:0}#ui-stage .stage-seg-replay:hover,#ui-stage .stage-seg-replay:focus-visible{outline-offset:-3px;outline:3px solid #ffcd75}.stage-fight-btn{min-height:0;font-family:var(--font-display);font-size:max(14px, calc(var(--u) * 10px));letter-spacing:1px;box-shadow:0 calc(var(--u) * 2px) 0 #1a1c2c;border-width:3px;font-weight:700}.stage-fight-btn.is-locked{color:#f4f4f4;font-weight:400;font-size:max(11px, calc(var(--u) * 7px));opacity:.9;background:#333c57}.puzzle-panel{gap:calc(var(--u) * 3px);padding:calc(var(--u) * 4px) calc(var(--u) * 10px) calc(var(--u) * 5px);background:linear-gradient(180deg, #ffcd7529 0, #ffcd7500 calc(var(--u) * 8px)), linear-gradient(180deg, #262b44f7 0%, #0f1019fc 100%);will-change:transform;border-width:3px 0 0;border-color:#ffcd75;flex-direction:column;transition:transform .14s,opacity .14s;display:flex;box-shadow:0 -2px #1a1c2c,inset 0 3px #ef7d57a6,inset 0 0 0 2px #566c8659;container:pz-panel/inline-size}.puzzle-panel.is-dim{opacity:.72}.puzzle-panel.is-away{transform:translateY(calc(var(--u) * 34px));opacity:.5;pointer-events:none}.puzzle-panel:focus,.puzzle-panel:focus-visible{outline:none}.pz-head{align-items:center;gap:calc(var(--u) * 4px);min-height:max(26px, calc(var(--u) * 16px));flex:none;display:flex}.pz-exit{min-height:max(30px, calc(var(--u) * 16px));padding:0 calc(var(--u) * 6px);font-size:max(14px, calc(var(--u) * 8.5px));flex:none;align-self:center;margin-left:auto}.pz-exit:focus-visible{outline-offset:-3px}.pz-clue{min-height:max(30px, calc(var(--u) * 16px));padding:0 calc(var(--u) * 6px);font-size:max(14px, calc(var(--u) * 8.5px));flex:none;align-self:center;margin-left:auto}.pz-clue+.pz-exit{margin-left:calc(var(--u) * 4px)}.pz-clue:focus-visible{outline-offset:-3px}.pz-clue svg{flex:none;width:1.1em;height:1.1em}.pz-clue.is-attention{animation:.6s ease-in-out 3 pz-clue-attention}@keyframes pz-clue-attention{0%,to{filter:brightness();box-shadow:0 0 #ffcd7500}50%{box-shadow:0 0 0 calc(var(--u) * 2px) #ffcd75d9;filter:brightness(1.25)}}.lesson-board{box-sizing:border-box;border-style:solid;border-color:#0000;border-width:calc(var(--u) * 8px) calc(var(--u) * 8px) calc(var(--u) * 12px) calc(var(--u) * 8px);border-image:url(../assets/tiles/blackboard.png) 8 48 12 48 fill / calc(var(--u) * 8px) calc(var(--u) * 48px) calc(var(--u) * 12px) calc(var(--u) * 48px) / 0 calc(var(--u) * 40px) stretch;image-rendering:pixelated;padding:calc(var(--u) * 3px) calc(var(--u) * 8px);color:#f4f4f4;font-family:var(--font-display);font-size:max(12px, calc(var(--u) * 12px));text-shadow:1px 1px #1a1c2c;transform-origin:50%;flex-direction:column;line-height:1.15;display:flex;overflow:hidden}.lesson-board[hidden]{display:none}.lesson-board-body{gap:calc(var(--u) * 2px);flex-direction:column;min-height:0;display:flex}.lesson-board-head{align-items:center;gap:calc(var(--u) * 3px);color:#ffcd75;font-size:max(12px, calc(var(--u) * 13px));margin:0;font-weight:700;display:flex}.lesson-board-head svg{flex:none;width:1em;height:1em}.lesson-board-text{margin:0}.lesson-board-code{font-size:max(11px, calc(var(--u) * 11px));color:#a7f070;white-space:pre;margin:0;line-height:1.15}.lesson-board-line{display:block}.lesson-board-rule{border:0;border-top:2px dashed #f4f4f473;width:100%;margin:0}.lesson-board.is-zooming{animation:.26s steps(6,end) both lesson-board-zoom}@keyframes lesson-board-zoom{0%{translate:var(--lb-dx) var(--lb-dy);scale:var(--lb-scale)}to{translate:0;scale:1}}.lesson-board-body.is-chalking{animation:.36s steps(8,end) both lesson-board-chalk}@keyframes lesson-board-chalk{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.confirm-dialog{gap:calc(var(--u) * 4px);z-index:10;background:linear-gradient(#262b44 0%,#1a1c2c 100%);flex-direction:column;display:flex}.confirm-dialog:focus,.confirm-dialog:focus-visible{outline:none}.confirm-title{color:#ffcd75;font-family:var(--font-display);font-size:max(16px, calc(var(--u) * 12px));text-shadow:2px 2px #1a1c2c;margin:0;font-weight:700}.confirm-msg{color:#f4f4f4;font-family:var(--font-display);font-size:max(14px, calc(var(--u) * 9px));flex:none;margin:0;line-height:1.35}.confirm-actions{gap:calc(var(--u) * 4px);justify-content:flex-end;display:flex}.confirm-actions .ui-btn{min-height:max(32px, calc(var(--u) * 20px))}.pz-badge{padding:0 calc(var(--u) * 3px);color:#1a1c2c;font-family:var(--font-display);font-size:max(11px, calc(var(--u) * 7.5px));letter-spacing:1px;text-transform:uppercase;background:#ffcd75;border:2px solid #1a1c2c;flex:none;font-weight:700;box-shadow:0 2px #b13e53}.pz-prompt{font-family:var(--font-display);font-size:max(17px, calc(var(--u) * 13px));letter-spacing:.5px;color:#ffe9a8;text-shadow:2px 2px #1a1c2c;margin:0;font-weight:700;line-height:1.2}.pz-prompt.is-busy{color:#f4f4f4;align-items:center;font-weight:400;display:flex}.pz-prompt.is-title{font-size:max(18px, calc(var(--u) * 14px))}.pz-body{gap:calc(var(--u) * 4px);flex-direction:column;flex:auto;min-height:0;display:flex}.pz-body--order .pz-row{flex:auto;align-items:stretch;min-height:0}.pz-body--order .pz-row-label,.pz-body--order .pz-empty{align-self:center}.pz-body--order .pz-chips{align-content:stretch;align-items:stretch}.pz-body--order .pz-chips--answer{padding:calc(var(--u) * 3px);background:#0f10198c;border:2px dashed #94b0c2}.pz-body--order .pz-chips:not(.pz-chips--answer)>.pz-chip{flex:auto}.pz-body--order.pz-fit--sm .pz-chip{font-size:max(16px, calc(var(--u) * 11px));min-height:max(32px, calc(var(--u) * 20px))}.pz-body--order.pz-fit--sm .pz-chips{min-height:0}.pz-body--order .pz-actions .ui-btn:disabled{opacity:.85;color:#c0cbdc;border-color:#566c86}.pz-row{align-items:center;gap:calc(var(--u) * 4px);display:flex}.pz-row-label{flex:0 0 calc(var(--u) * 80px);color:#f4f4f4;font-size:max(14px, calc(var(--u) * 10px));font-weight:700}.pz-chips{align-items:center;gap:calc(var(--u) * 3px);min-height:max(40px, calc(var(--u) * 26px));flex-wrap:wrap;flex:1;display:flex}.pz-chips--answer{padding:2px calc(var(--u) * 3px);border-bottom:2px dashed #566c86}.pz-chip{min-height:max(40px, calc(var(--u) * 26px));padding:0 calc(var(--u) * 7px);color:#1a1c2c;font-size:max(16px, calc(var(--u) * 14px));text-shadow:none;background:#f4f4f4;border:2px solid #1a1c2c;box-shadow:inset 0 2px #fff,inset 0 -3px #94b0c2,0 3px #0d0e17}.pz-chip:hover:not(:disabled){color:#1a1c2c;background:#fff;box-shadow:inset 0 2px #fff,inset 0 -3px #ffcd75,0 3px #0d0e17}.pz-chip:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #94b0c2,0 1px #0d0e17}.pz-chip.is-picked{background:#ffe9a8;box-shadow:inset 0 2px #fff,inset 0 -3px #ef7d57,0 3px #0d0e17}.pz-chip.is-used{visibility:hidden}.pz-empty{color:#94b0c2;font-style:italic;font-size:max(14px, calc(var(--u) * 11px))}.pz-line{padding:calc(var(--u) * 5px) calc(var(--u) * 8px);color:#a7f070;font-size:max(16px, calc(var(--u) * 14px));white-space:pre-wrap;background:#1a1c2c;border:2px solid #333c57;margin:0}.pz-blank{color:#ffcd75;border-bottom:2px solid #ffcd75;min-width:3em;padding:0 4px;display:inline-block}.pz-blank.is-filled{color:#f4f4f4}.pz-options{gap:calc(var(--u) * 4px);flex-wrap:wrap;flex:auto;align-content:stretch;min-height:0;display:flex}.pz-options--grid{grid-template-columns:1fr 1fr;grid-auto-rows:1fr;display:grid}.pz-option{min-height:max(44px, calc(var(--u) * 28px));flex:1 1 calc(var(--u) * 130px);justify-content:flex-start;gap:calc(var(--u) * 6px);padding:0 calc(var(--u) * 8px);font-size:max(16px, calc(var(--u) * 14px));text-align:left}.pz-body--fill .pz-option{font-size:max(18px, calc(var(--u) * 20px))}.pz-option,.pz-chip{text-transform:none}.pz-option:hover:not(:disabled){border-color:#ffcd75}.pz-key{color:#ffcd75;min-width:1.6em;height:1.6em;font-family:var(--font-display);background:#1a1c2c;border:1px solid #566c86;justify-content:center;align-items:center;font-size:.85em;display:inline-flex}.pz-chip .pz-key{background:#333c57}.pz-sym{font-family:var(--font-mono);font-weight:700}.pz-hint{color:#c0cbdc;font-size:max(14px, calc(var(--u) * 10px));margin:0}.pz-spot-line{grid-auto-columns:auto;grid-auto-flow:column;grid-template-rows:min(100%, calc(var(--u) * 80px));flex:auto;place-content:center stretch;align-items:stretch;min-height:0;display:grid}.pz-spot-line .pz-chip{min-height:0;font-size:max(16px, calc(var(--u) * 18px));overflow-wrap:anywhere}.pz-fit--md .pz-spot-line{grid-template-rows:min(100%, calc(var(--u) * 62px))}.pz-fit--md .pz-spot-line .pz-chip{font-size:max(16px, calc(var(--u) * 14px))}.pz-fit--sm .pz-spot-line{grid-template-rows:min(100%, calc(var(--u) * 50px))}.pz-fit--sm .pz-spot-line .pz-chip{font-size:max(16px, calc(var(--u) * 11px))}.pz-feedback{box-sizing:border-box}.pz-feedback:empty{border:0;padding:0}.pz-feedback.is-ok,.pz-feedback.is-bad{padding:calc(var(--u) * 4px) calc(var(--u) * 8px);border:2px solid}.pz-feedback.is-ok{color:#a7f070;background:#38b76440;border-color:#38b764}.pz-feedback.is-bad{color:#ff9a9a;background:#b13e5340;border-color:#b13e53}.pz-feedback-title,.pz-feedback-why,.pz-detail{margin:0}.pz-feedback-title{font-weight:700;font-size:max(15px, calc(var(--u) * 10px))}.pz-feedback-code{color:#f4f4f4}.pz-feedback-why{color:#f4f4f4;font-size:max(14px, calc(var(--u) * 9px))}.pz-detail{font-size:max(14px, calc(var(--u) * 9px))}.pz-actions{justify-content:flex-end;gap:calc(var(--u) * 4px);margin-top:auto;display:flex}.pz-actions .ui-btn{min-height:max(36px, calc(var(--u) * 22px));font-size:max(14px, calc(var(--u) * 9px))}.pz-body--message{justify-content:center;gap:calc(var(--u) * 8px)}.pz-body--message .pz-detail{color:#f4f4f4;font-size:max(16px, calc(var(--u) * 12px));line-height:1.3}.pz-body--message .pz-actions{margin-top:0}.pz-body--message .pz-actions .ui-btn{min-height:max(40px, calc(var(--u) * 26px));font-size:max(15px, calc(var(--u) * 11px))}@container pz-panel (width<=1000px){.pz-prompt{font-size:max(15px, calc(var(--u) * 13px))}.pz-exit{min-height:max(28px, calc(var(--u) * 16px))}.pz-clue{min-height:max(28px, calc(var(--u) * 16px));padding:0 calc(var(--u) * 4px);letter-spacing:0;gap:4px}.pz-actions .ui-btn{min-height:max(30px, calc(var(--u) * 22px))}.pz-option{font-size:max(13px, calc(var(--u) * 14px));padding:0 calc(var(--u) * 6px)}.pz-feedback.is-ok,.pz-feedback.is-bad{padding:calc(var(--u) * 3px) calc(var(--u) * 6px)}.pz-feedback-title{font-size:max(13px, calc(var(--u) * 10px))}.pz-feedback-why,.pz-detail{font-size:max(13px, calc(var(--u) * 9px))}.pz-body--message .pz-detail{font-size:max(14px, calc(var(--u) * 12px))}.pz-body--message .pz-actions .ui-btn{min-height:max(32px, calc(var(--u) * 26px));font-size:max(13px, calc(var(--u) * 11px))}.pz-body--order{grid-template-columns:calc(var(--u) * 84px) minmax(0, 1fr);gap:calc(var(--u) * 4px);grid-template-rows:minmax(0,1fr) minmax(0,1fr);display:grid}.pz-body--order .pz-row{display:contents}.pz-body--order .pz-row:first-child>.pz-row-label{grid-area:1/1}.pz-body--order .pz-row:first-child>.pz-chips{grid-area:1/2}.pz-body--order .pz-row:nth-child(2)>.pz-row-label{grid-area:2/1;align-self:start}.pz-body--order .pz-row:nth-child(2)>.pz-chips{grid-area:2/2}.pz-body--order .pz-row-label{font-size:max(12px, calc(var(--u) * 10px))}.pz-body--order>.pz-actions{grid-area:2/1;align-self:end;margin:0}.pz-body--order .pz-actions .ui-btn{width:100%;padding:0 calc(var(--u) * 3px);font-size:max(12px, calc(var(--u) * 9px))}.pz-body--order .pz-chips{min-height:0}.pz-body--order .pz-chips--answer{padding:2px}.pz-body--order .pz-chip,.pz-body--order.pz-fit--sm .pz-chip{min-height:0;padding:0 calc(var(--u) * 5px);font-size:max(13px, calc(var(--u) * 14px))}.pz-body--order.pz-fit--sm .pz-chip{padding:0 calc(var(--u) * 3px);font-size:max(11px, calc(var(--u) * 11px))}.pz-body--order.pz-fit--sm .pz-chips{gap:calc(var(--u) * 2px)}.pz-body--order .pz-empty{font-size:max(12px, calc(var(--u) * 11px))}.pz-spot-line,.pz-fit--md .pz-spot-line,.pz-fit--sm .pz-spot-line{grid-template-rows:100%}.pz-spot-line .pz-chip{padding:0 calc(var(--u) * 4px)}.pz-fit--md .pz-spot-line .pz-chip{font-size:max(13px, calc(var(--u) * 14px))}.pz-fit--sm .pz-spot-line .pz-chip{font-size:max(12px, calc(var(--u) * 11px))}.pz-hint{font-size:max(12px, calc(var(--u) * 10px))}}.chaos-clock{padding:0 calc(var(--u) * 4px);font-family:var(--font-mono);font-size:max(11px, calc(var(--u) * 7.5px));white-space:nowrap;color:#ffcd75;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.victory-note,.victory-disclaimer{text-align:center;text-shadow:1px 1px #1a1c2c;margin:0}.victory-note{color:#a7f070;font-size:max(11px, calc(var(--u) * 7px))}.victory-disclaimer{color:#94b0c2;font-size:max(10px, calc(var(--u) * 6px))}.victory-actions{justify-content:center;gap:calc(var(--u) * 4px);display:flex}.victory-actions .ui-btn{min-height:0;padding:0 calc(var(--u) * 4px);font-size:max(11px, calc(var(--u) * 7px));text-align:center;flex:1 1 0;line-height:1.1}.upload-modal{gap:calc(var(--u) * 3px);padding:calc(var(--u) * 6px) calc(var(--u) * 8px);box-shadow:0 calc(var(--u) * 3px) 0 #1a1c2c;z-index:10;border-width:3px;flex-direction:column;display:flex}.upload-modal:focus{outline:none}.upload-modal .ui-field{margin-bottom:0}.up-title{font-family:var(--font-display);font-size:max(15px, calc(var(--u) * 11px));letter-spacing:.5px;text-transform:uppercase;color:#ffcd75;text-shadow:1px 1px #1a1c2c;margin:0;font-weight:700}.upload-modal .up-code{min-height:calc(var(--u) * 70px);resize:vertical;font-family:var(--font-mono);font-size:max(12px, calc(var(--u) * 6.5px));white-space:pre;tab-size:2;line-height:1.3;overflow:auto}.up-counter{text-align:right;color:#94b0c2;font-size:max(10px, calc(var(--u) * 5.5px));margin:1px 0 0}.up-template summary{cursor:pointer;color:#73eff7;font-size:max(11px, calc(var(--u) * 6.5px))}.up-template pre{margin:calc(var(--u) * 2px) 0 0 0;padding:calc(var(--u) * 3px) calc(var(--u) * 5px);color:#a7f070;font-size:max(11px, calc(var(--u) * 6px));white-space:pre;background:#1a1c2c;border:1px solid #333c57;line-height:1.25;overflow-x:auto}.up-actions{justify-content:flex-end;gap:calc(var(--u) * 4px);display:flex}.up-actions .ui-btn{min-height:max(30px, calc(var(--u) * 16px))}.upload-modal .up-verdict{padding:calc(var(--u) * 2px) calc(var(--u) * 4px);font-size:max(12px, calc(var(--u) * 7px));border:2px solid #0000;margin:0;font-weight:700}.upload-modal .up-verdict:empty{display:none}.upload-modal .up-verdict.ok{background:#38b76440;border-color:#38b764}.upload-modal .up-verdict.error{background:#b13e5340;border-color:#b13e53}.up-buff{color:#ffcd75;margin-top:2px;display:block}.auth-build-id{margin-top:calc(var(--u) * 2px);text-align:center;font-family:var(--font-mono);color:#566c86;letter-spacing:.5px;-webkit-user-select:none;user-select:none;font-size:8px}.hud-build-id{font-family:var(--font-mono);color:#566c86;margin-left:auto;margin-right:calc(var(--u) * 4px);-webkit-user-select:none;user-select:none;font-size:8px}.idle-after-boss{gap:calc(var(--u) * 2px);padding:calc(var(--u) * 3px);flex-direction:column;display:flex}.idle-after-btn{min-height:0;height:calc(var(--u) * 16px);padding:0 calc(var(--u) * 4px);font-size:max(11px, calc(var(--u) * 6.5px));flex:none}.idle-after-line{font-size:max(9px, calc(var(--u) * 5.5px));color:#94b0c2;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;margin:0;display:flex;overflow:hidden}.idle-after-line img{width:calc(var(--u) * 7px);height:calc(var(--u) * 7px);min-width:9px;min-height:9px}.idle-after-floor.is-open{color:#a7f070}#ui-overlay [hidden]{display:none!important}.auth-build-id,.hud-build-id{font-family:var(--font-mono);font-size:max(7px, calc(var(--u) * 5px));color:#ffffff40;pointer-events:none;-webkit-user-select:none;user-select:none}.auth-build-id{text-align:center;margin-top:calc(var(--u) * 2px)}.hud-build-id{margin-left:auto}@media (prefers-reduced-motion:reduce){.ui-btn,.auth-tab-btn{transition:none!important;transform:none!important}.lesson-board,.lesson-board *{transition:none!important;animation:none!important}.pz-clue.is-attention{outline-offset:-3px;outline:2px solid #ffcd75;animation:none!important}.puzzle-panel,.puzzle-panel.is-away,.puzzle-panel.is-dim{opacity:1;pointer-events:auto;transition:none!important;transform:none!important}}:root{--fx-ink:#1a1c2c;--fx-slate:#333c57;--fx-navy:#29366f;--fx-blue:#41a6f6;--fx-crimson:#b13e53;--fx-red:#e43b44;--fx-orange:#ef7d57;--fx-green:#38b764;--fx-lime:#a7f070;--fx-purple:#8e5bd6;--fx-plum:#5d275d;--fx-gold:#ffcd75;--fx-gold-light:#ffe9a8;--fx-brown:#733e39;--fx-white:#f4f4f4;--fx-black:#000;--fx-green-a:#38b76473;--fx-red-a:#e43b4473;--fx-gold-a:#ffcd758c;--fx-fast:.12s;--fx-base:.22s;--fx-slow:.42s;--fx-ease-settle:cubic-bezier(.2, .8, .2, 1);--fx-ease-in:cubic-bezier(.4, 0, 1, 1);--fx-px:2px;--fx-shake-amp:calc(var(--fx-px) * 1);--fx-font:var(--font-display,"Pixelify Sans", monospace);--fx-outline:var(--fx-px) 0 0 var(--fx-ink), calc(var(--fx-px) * -1) 0 0 var(--fx-ink), 0 var(--fx-px) 0 var(--fx-ink), 0 calc(var(--fx-px) * -1) 0 var(--fx-ink)}@keyframes fx-kf-enter{0%{opacity:0;translate:0 calc(var(--fx-px) * 6)}to{opacity:1;translate:0}}@keyframes fx-kf-drop{0%{opacity:0;translate:0 calc(var(--fx-px) * -6)}to{opacity:1;translate:0}}@keyframes fx-kf-exit{to{opacity:0;translate:0 calc(var(--fx-px) * -4)}}@keyframes fx-kf-pop{0%{scale:1}40%{scale:1.12}to{scale:1}}@keyframes fx-kf-shake{0%{translate:0}20%{translate:var(--fx-shake-amp) 0}40%{translate:calc(var(--fx-shake-amp) * -1) 0}60%{translate:var(--fx-shake-amp) 0}80%{translate:calc(var(--fx-shake-amp) * -1) 0}to{translate:0}}@keyframes fx-kf-flash-ok{0%{box-shadow:0 0 0 calc(var(--fx-px) * 2) var(--fx-green), inset 0 0 0 999px var(--fx-green-a)}to{box-shadow:0 0 0 calc(var(--fx-px) * 2) transparent, inset 0 0 0 999px transparent}}@keyframes fx-kf-flash-bad{0%{box-shadow:0 0 0 calc(var(--fx-px) * 2) var(--fx-red), inset 0 0 0 999px var(--fx-red-a)}to{box-shadow:0 0 0 calc(var(--fx-px) * 2) transparent, inset 0 0 0 999px transparent}}@keyframes fx-kf-pulse{0%{box-shadow:0 0 0 0 var(--fx-gold-a);scale:1}50%{box-shadow:0 0 0 calc(var(--fx-px) * 3) var(--fx-gold-a);scale:1.06}to{box-shadow:0 0 0 0 var(--fx-gold-a);scale:1}}@keyframes fx-kf-glow{0%{box-shadow:0 0 0 var(--fx-px) var(--fx-gold), 0 0 0 calc(var(--fx-px) * 2) var(--fx-ink)}50%,to{box-shadow:0 0 0 var(--fx-px) var(--fx-gold-light), 0 0 0 calc(var(--fx-px) * 2) var(--fx-gold)}}@keyframes fx-kf-bob{0%,to{translate:0}50%{translate:0 calc(var(--fx-px) * -2)}}@keyframes fx-kf-blink{0%{opacity:1}50%{opacity:0}}@keyframes fx-kf-urgent{0%{color:var(--fx-red);scale:1}50%,to{color:var(--fx-gold);scale:1.12}}@keyframes fx-kf-stripes{0%{background-position:0 0}to{background-position:calc(var(--fx-px) * 8) 0}}@keyframes fx-kf-loading{0%{background-color:var(--fx-gold);box-shadow:calc(var(--fx-px) * 6) 0 0 0 var(--fx-slate), calc(var(--fx-px) * 12) 0 0 0 var(--fx-slate)}33.333%{background-color:var(--fx-slate);box-shadow:calc(var(--fx-px) * 6) 0 0 0 var(--fx-gold), calc(var(--fx-px) * 12) 0 0 0 var(--fx-slate)}66.666%,to{background-color:var(--fx-slate);box-shadow:calc(var(--fx-px) * 6) 0 0 0 var(--fx-slate), calc(var(--fx-px) * 12) 0 0 0 var(--fx-gold)}}@keyframes fx-kf-float{0%{opacity:1;translate:0}70%{opacity:1}to{opacity:0;translate:0 calc(var(--fx-px) * -14)}}@keyframes fx-kf-fade{0%,70%{opacity:1}to{opacity:0}}@keyframes fx-kf-crit-pop{0%{scale:1.6}20%{scale:1}}@keyframes fx-kf-coin-spin{0%,to{scale:1}50%{scale:.25 1}}@keyframes fx-kf-fly-x{0%{translate:0}to{translate:var(--fx-dx) 0}}@keyframes fx-kf-fly-y{0%{translate:0}to{translate:0 var(--fx-dy)}}@keyframes fx-kf-flash{0%{opacity:.6}to{opacity:0}}@keyframes fx-kf-block-in{0%{scale:0}to{scale:1}}@keyframes fx-kf-block-out{0%{scale:1}to{scale:0}}@keyframes fx-kf-lid-close-top{0%{translate:0 -100%}40%{translate:0 -40%}55%{translate:0 -60%}to{translate:0}}@keyframes fx-kf-lid-close-bottom{0%{translate:0 100%}40%{translate:0 40%}55%{translate:0 60%}to{translate:0}}@keyframes fx-kf-lid-open-top{0%{translate:0}to{translate:0 -100%}}@keyframes fx-kf-lid-open-bottom{0%{translate:0}to{translate:0 100%}}@keyframes fx-kf-zzz{0%{opacity:0;translate:0;scale:.6}15%{opacity:1}to{opacity:0;translate:calc(var(--fx-px) * 10) calc(var(--fx-px) * -16);scale:1.3}}@keyframes fx-kf-confetti{0%{translate:0 -10vh;rotate:0deg}to{translate:var(--fx-drift) 110vh;rotate:var(--fx-rot)}}@keyframes fx-kf-spark{0%{translate:0;scale:1}to{translate:var(--fx-dx) var(--fx-dy);scale:0}}.fx-pulse{animation:1.2s steps(3,end) infinite fx-kf-pulse}.fx-glow{animation:2s step-end infinite fx-kf-glow}.fx-bob{animation:1.6s steps(2,end) infinite fx-kf-bob}.fx-blink{animation:1s step-end infinite fx-kf-blink}.fx-timer-urgent{color:var(--fx-red);animation:1s step-end infinite fx-kf-urgent}.fx-progress{background-color:var(--fx-green);background-image:linear-gradient(135deg,#f4f4f438 25%,#0000 25% 50%,#f4f4f438 50% 75%,#0000 75%);background-size:calc(var(--fx-px) * 8) calc(var(--fx-px) * 8);image-rendering:pixelated;transition:width var(--fx-slow) var(--fx-ease-settle);animation:.6s linear infinite fx-kf-stripes}.fx-loading{width:calc(var(--fx-px) * 4);height:calc(var(--fx-px) * 4);margin-right:calc(var(--fx-px) * 12);vertical-align:middle;background-color:var(--fx-gold);animation:.9s step-end infinite fx-kf-loading;display:inline-block}.fx-enter{animation:fx-kf-enter var(--fx-base) var(--fx-ease-settle) both}.fx-exit{animation:fx-kf-exit var(--fx-base) var(--fx-ease-in) forwards}.fx-pop{animation:fx-kf-pop calc(var(--fx-fast) * 1.5) var(--fx-ease-settle)}.fx-shake{animation:fx-kf-shake calc(var(--fx-fast) * 2.5) steps(1, end)}.fx-shake--hard{--fx-shake-amp:calc(var(--fx-px) * 3)}.fx-correct{animation:fx-kf-flash-ok var(--fx-slow) steps(4, end)}.fx-wrong{animation:fx-kf-flash-bad var(--fx-slow) steps(4, end), fx-kf-shake calc(var(--fx-fast) * 2.5) steps(1, end)}.fx-layer{z-index:20;pointer-events:none;contain:layout paint;image-rendering:pixelated;font-family:var(--fx-font);-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;font-weight:700;line-height:1;position:fixed;inset:0;overflow:hidden}.fx-layer *{pointer-events:none}.fx-layer>.fx-wipe.fx-wipe--blocking,.fx-layer>.fx-lids.fx-lids--blocking{pointer-events:auto}.fx-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fx-float{z-index:1;transform-origin:0 0;white-space:nowrap;font-size:calc(var(--fx-px) * 6);text-shadow:var(--fx-outline);animation:.9s steps(9,end) forwards fx-kf-float;position:absolute;transform:translate(-50%,-50%)}.fx-float--coin{color:var(--fx-gold)}.fx-float--damage{color:var(--fx-red)}.fx-float--heal{color:var(--fx-green)}.fx-float--xp{color:var(--fx-purple)}.fx-float--crit{color:var(--fx-orange);font-size:calc(var(--fx-px) * 9);animation:.9s steps(9,end) forwards fx-kf-float,.9s steps(3,end) fx-kf-crit-pop}.fx-coin-fly-x{z-index:1;width:0;height:0;animation:fx-kf-fly-x .56s var(--fx-ease-settle) forwards;position:absolute}.fx-coin-fly-y{width:0;height:0;animation:.56s cubic-bezier(.6,0,.9,.4) forwards fx-kf-fly-y;position:absolute;top:0;left:0}.fx-coin{width:calc(var(--fx-px) * 8);height:calc(var(--fx-px) * 8);transform-origin:0 0;animation:.36s steps(4,end) infinite fx-kf-coin-spin;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.fx-coin:before{content:"";width:var(--fx-px);height:var(--fx-px);box-shadow:calc(var(--fx-px) * 2) 0 0 0 var(--fx-brown), calc(var(--fx-px) * 3) 0 0 0 var(--fx-brown), calc(var(--fx-px) * 4) 0 0 0 var(--fx-brown), calc(var(--fx-px) * 5) 0 0 0 var(--fx-brown), calc(var(--fx-px) * 1) calc(var(--fx-px) * 1) 0 0 var(--fx-brown), calc(var(--fx-px) * 2) calc(var(--fx-px) * 1) 0 0 var(--fx-gold-light), calc(var(--fx-px) * 3) calc(var(--fx-px) * 1) 0 0 var(--fx-gold-light), calc(var(--fx-px) * 4) calc(var(--fx-px) * 1) 0 0 var(--fx-gold), calc(var(--fx-px) * 5) calc(var(--fx-px) * 1) 0 0 var(--fx-gold), calc(var(--fx-px) * 6) calc(var(--fx-px) * 1) 0 0 var(--fx-brown), 0 calc(var(--fx-px) * 2) 0 0 var(--fx-brown), calc(var(--fx-px) * 1) calc(var(--fx-px) * 2) 0 0 var(--fx-gold-light), calc(var(--fx-px) * 2) calc(var(--fx-px) * 2) 0 0 var(--fx-gold), calc(var(--fx-px) * 3) calc(var(--fx-px) * 2) 0 0 var(--fx-gold), calc(var(--fx-px) * 4) calc(var(--fx-px) * 2) 0 0 var(--fx-gold), calc(var(--fx-px) * 5) calc(var(--fx-px) * 2) 0 0 var(--fx-gold), calc(var(--fx-px) * 6) calc(var(--fx-px) * 2) 0 0 var(--fx-orange), calc(var(--fx-px) * 7) calc(var(--fx-px) * 2) 0 0 var(--fx-brown), 0 calc(var(--fx-px) * 3) 0 0 var(--fx-brown), calc(var(--fx-px) * 1) calc(var(--fx-px) * 3) 0 0 var(--fx-gold-light), calc(var(--fx-px) * 2) calc(var(--fx-px) * 3) 0 0 var(--fx-gold), calc(var(--fx-px) * 3) calc(var(--fx-px) * 3) 0 0 var(--fx-gold), calc(var(--fx-px) * 4) calc(var(--fx-px) * 3) 0 0 var(--fx-gold), calc(var(--fx-px) * 5) calc(var(--fx-px) * 3) 0 0 var(--fx-gold), calc(var(--fx-px) * 6) calc(var(--fx-px) * 3) 0 0 var(--fx-orange), calc(var(--fx-px) * 7) calc(var(--fx-px) * 3) 0 0 var(--fx-brown), 0 calc(var(--fx-px) * 4) 0 0 var(--fx-brown), calc(var(--fx-px) * 1) calc(var(--fx-px) * 4) 0 0 var(--fx-gold), calc(var(--fx-px) * 2) calc(var(--fx-px) * 4) 0 0 var(--fx-gold), calc(var(--fx-px) * 3) calc(var(--fx-px) * 4) 0 0 var(--fx-gold), calc(var(--fx-px) * 4) calc(var(--fx-px) * 4) 0 0 var(--fx-gold), calc(var(--fx-px) * 5) calc(var(--fx-px) * 4) 0 0 var(--fx-gold), calc(var(--fx-px) * 6) calc(var(--fx-px) * 4) 0 0 var(--fx-orange), calc(var(--fx-px) * 7) calc(var(--fx-px) * 4) 0 0 var(--fx-brown), 0 calc(var(--fx-px) * 5) 0 0 var(--fx-brown), calc(var(--fx-px) * 1) calc(var(--fx-px) * 5) 0 0 var(--fx-gold), calc(var(--fx-px) * 2) calc(var(--fx-px) * 5) 0 0 var(--fx-gold), calc(var(--fx-px) * 3) calc(var(--fx-px) * 5) 0 0 var(--fx-gold), calc(var(--fx-px) * 4) calc(var(--fx-px) * 5) 0 0 var(--fx-gold), calc(var(--fx-px) * 5) calc(var(--fx-px) * 5) 0 0 var(--fx-orange), calc(var(--fx-px) * 6) calc(var(--fx-px) * 5) 0 0 var(--fx-orange), calc(var(--fx-px) * 7) calc(var(--fx-px) * 5) 0 0 var(--fx-brown), calc(var(--fx-px) * 1) calc(var(--fx-px) * 6) 0 0 var(--fx-brown), calc(var(--fx-px) * 2) calc(var(--fx-px) * 6) 0 0 var(--fx-gold), calc(var(--fx-px) * 3) calc(var(--fx-px) * 6) 0 0 var(--fx-orange), calc(var(--fx-px) * 4) calc(var(--fx-px) * 6) 0 0 var(--fx-orange), calc(var(--fx-px) * 5) calc(var(--fx-px) * 6) 0 0 var(--fx-orange), calc(var(--fx-px) * 6) calc(var(--fx-px) * 6) 0 0 var(--fx-brown), calc(var(--fx-px) * 2) calc(var(--fx-px) * 7) 0 0 var(--fx-brown), calc(var(--fx-px) * 3) calc(var(--fx-px) * 7) 0 0 var(--fx-brown), calc(var(--fx-px) * 4) calc(var(--fx-px) * 7) 0 0 var(--fx-brown), calc(var(--fx-px) * 5) calc(var(--fx-px) * 7) 0 0 var(--fx-brown);background:0 0;position:absolute;top:0;left:0}.fx-flash{z-index:2;opacity:0;animation:fx-kf-flash var(--fx-base) steps(3, end) forwards;position:absolute;inset:0}.fx-flash--hit{background:var(--fx-red)}.fx-flash--white{background:var(--fx-white)}.fx-flash--heal{background:var(--fx-green)}.fx-lids{z-index:3;position:absolute;inset:0}.fx-lid{background:var(--fx-black);height:50%;position:absolute;left:0;right:0}.fx-lid--top{top:0;translate:0 -100%}.fx-lid--bottom{bottom:0;translate:0 100%}.fx-lids--closing .fx-lid--top{animation:fx-kf-lid-close-top calc(var(--fx-slow) * 2) var(--fx-ease-settle) forwards}.fx-lids--closing .fx-lid--bottom{animation:fx-kf-lid-close-bottom calc(var(--fx-slow) * 2) var(--fx-ease-settle) forwards}.fx-lids--closed .fx-lid{translate:0}.fx-lids--opening .fx-lid--top{animation:fx-kf-lid-open-top var(--fx-slow) var(--fx-ease-settle) forwards}.fx-lids--opening .fx-lid--bottom{animation:fx-kf-lid-open-bottom var(--fx-slow) var(--fx-ease-settle) forwards}.fx-zzz{z-index:4;width:0;height:0;position:absolute}.fx-z{transform-origin:0 0;white-space:nowrap;color:var(--fx-white);font-size:calc(var(--fx-px) * 7);text-shadow:var(--fx-outline);opacity:0;animation:1.8s steps(9,end) forwards fx-kf-zzz;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.fx-z--small{font-size:calc(var(--fx-px) * 5)}.fx-zzz--still .fx-z{opacity:1;animation:none}.fx-toasts{z-index:5;align-items:center;gap:calc(var(--fx-px) * 3);flex-direction:column;display:flex;position:absolute}.fx-toast{box-sizing:border-box;max-width:100%;padding:calc(var(--fx-px) * 3) calc(var(--fx-px) * 5);background:var(--fx-ink);color:var(--fx-white);border:var(--fx-px) solid var(--fx-blue);box-shadow:var(--fx-px) var(--fx-px) 0 0 var(--fx-black);font-size:calc(var(--fx-px) * 6);text-align:center;animation:fx-kf-drop var(--fx-base) var(--fx-ease-settle) both;line-height:1.25}.fx-toast--ok{border-color:var(--fx-green)}.fx-toast--error{border-color:var(--fx-red)}.fx-toast--out{animation:fx-kf-exit var(--fx-base) var(--fx-ease-in) forwards}.fx-wipe{z-index:6;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(16,1fr);display:grid;position:absolute;inset:0}.fx-wipe--covered{background:var(--fx-ink)}.fx-wipe-block{background:var(--fx-ink);box-shadow:0 0 0 1px var(--fx-ink);animation:fx-kf-block-in var(--fx-base) steps(4, end) var(--fx-d,0s) both}.fx-wipe--out .fx-wipe-block{animation-name:fx-kf-block-out}.fx-wipe--instant .fx-wipe-block{animation:none;scale:1}.fx-confetti{z-index:1;position:absolute;inset:0}.fx-confetti-piece{top:0;left:var(--fx-x);width:calc(var(--fx-px) * 2);height:calc(var(--fx-px) * 4);background:var(--fx-c);animation:fx-kf-confetti var(--fx-dur) steps(16, end) var(--fx-d) both;position:absolute;translate:0 -10vh}.fx-burst{z-index:1;width:0;height:0;position:absolute}.fx-spark{width:calc(var(--fx-px) * 2);height:calc(var(--fx-px) * 2);margin:calc(var(--fx-px) * -1);background:var(--fx-gold);animation:fx-kf-spark var(--fx-slow) steps(5, end) forwards;position:absolute;top:0;left:0}.fx-spark--light{background:var(--fx-gold-light)}.fx-star-core{width:calc(var(--fx-px) * 2);height:calc(var(--fx-px) * 2);transform-origin:0 0;background:var(--fx-gold-light);box-shadow:calc(var(--fx-px) * 2) 0 0 0 var(--fx-gold), calc(var(--fx-px) * -2) 0 0 0 var(--fx-gold), 0 calc(var(--fx-px) * 2) 0 0 var(--fx-gold), 0 calc(var(--fx-px) * -2) 0 0 var(--fx-gold);animation:fx-kf-pop var(--fx-slow) steps(3, end), fx-kf-fade var(--fx-slow) steps(3, end) forwards;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}@media (prefers-reduced-motion:reduce){.fx-enter,.fx-exit,.fx-pop,.fx-shake,.fx-correct,.fx-wrong,.fx-pulse,.fx-glow,.fx-bob,.fx-blink,.fx-timer-urgent,.fx-progress,.fx-loading,.fx-coin,.fx-coin-fly-x,.fx-coin-fly-y,.fx-flash,.fx-lid,.fx-z,.fx-toast,.fx-wipe-block,.fx-confetti-piece,.fx-spark,.fx-star-core{transition:none!important;animation:none!important}.fx-pulse{box-shadow:0 0 0 calc(var(--fx-px) * 2) var(--fx-gold)}.fx-glow{box-shadow:0 0 0 var(--fx-px) var(--fx-gold), 0 0 0 calc(var(--fx-px) * 2) var(--fx-gold)}.fx-timer-urgent{color:var(--fx-red)}.fx-correct{box-shadow:0 0 0 calc(var(--fx-px) * 2) var(--fx-green), inset 0 0 0 999px var(--fx-green-a)}.fx-wrong{box-shadow:0 0 0 calc(var(--fx-px) * 2) var(--fx-red), inset 0 0 0 999px var(--fx-red-a)}.fx-loading{background-color:var(--fx-gold);box-shadow:calc(var(--fx-px) * 6) 0 0 0 var(--fx-gold), calc(var(--fx-px) * 12) 0 0 0 var(--fx-gold)}.fx-float,.fx-float--crit{animation:.9s forwards fx-kf-fade!important}.fx-z{opacity:1}.fx-wipe-block{scale:1}.fx-flash,.fx-confetti-piece,.fx-spark,.fx-star-core{display:none}}
