@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/vt323-vietnamese-400-normal-D0VnvwZ9.woff2)format("woff2"),url(/build/assets/vt323-vietnamese-400-normal-D_5Q7Vcv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/vt323-latin-ext-400-normal-iUdYUaX4.woff2)format("woff2"),url(/build/assets/vt323-latin-ext-400-normal-DqOq58ri.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/vt323-latin-400-normal-wDgJuOC9.woff2)format("woff2"),url(/build/assets/vt323-latin-400-normal-Dqn9ZSPj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/press-start-2p-cyrillic-ext-400-normal-CIYZrvmP.woff2)format("woff2"),url(/build/assets/press-start-2p-cyrillic-ext-400-normal-B5Ckvkit.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/press-start-2p-cyrillic-400-normal-DBn7fddJ.woff2)format("woff2"),url(/build/assets/press-start-2p-cyrillic-400-normal-CbE56R3Y.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/press-start-2p-greek-400-normal-DQfalijU.woff2)format("woff2"),url(/build/assets/press-start-2p-greek-400-normal-BR_lG5n9.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/press-start-2p-latin-ext-400-normal-DpfYvR5A.woff2)format("woff2"),url(/build/assets/press-start-2p-latin-ext-400-normal-DBgyq7ky.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/press-start-2p-latin-400-normal-_wFEWmAB.woff2)format("woff2"),url(/build/assets/press-start-2p-latin-400-normal-KLytu4cr.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--cyan:#07d2fb;--cyan-deep:#0390ad;--cyan-light:#9ff3ff;--yellow:#fff200;--cream:#f2ffca;--ink:#1b1630;--ink-soft:#5d5672;--orange:#ffa41b;--red:#ff1f1f;--blue:#16a6ff;--magenta:#c2128a;--pixel:"Press Start 2P", "Courier New", monospace;--mono:"VT323", Consolas, "Courier New", monospace;--shadow:0 19px 50px #0000004d, 0 15px 25px #00000038}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--mono);color:var(--ink);-webkit-font-smoothing:antialiased;background-color:#000;background-image:linear-gradient(#0000000d,#00000080),url(/build/assets/DrTonBackground-DcyRwrOq.png);background-size:100% 100%,40px 40px}@media (prefers-reduced-motion:no-preference){body{animation:12s linear infinite drift}}@keyframes drift{to{background-position:0 0,40px 40px}}#root{position:fixed;inset:0}.stage{transform-origin:50%;-webkit-user-select:none;user-select:none;position:absolute;top:50%;left:50%}.scene{animation:.35s both scene-in;position:absolute;inset:0}@keyframes scene-in{0%{opacity:0;transform:scale(.985)}}.panel{box-shadow:var(--shadow);border-radius:12px;position:absolute}.panel.cream{background:var(--cream);border:10px solid var(--yellow);box-shadow:var(--shadow), inset 0 0 0 2px #ffffffb3, inset 0 -6px 0 #0000000f}.panel.cyan{border:10px solid var(--cyan);background:#000}.panel-label{font-family:var(--pixel);letter-spacing:1px;color:var(--cyan);text-transform:uppercase;font-size:12px}.stat+.stat{margin-top:16px}.stat-label{font-family:var(--pixel);letter-spacing:1px;color:var(--ink-soft);text-transform:uppercase;font-size:14px}.stat-value{font-family:var(--mono);text-align:right;color:var(--ink);font-size:64px;line-height:.95;transition:color .2s}.stat-value.small{font-size:44px}.stat-value.counting{color:var(--magenta)}.stat-sub{font-family:var(--mono);text-align:right;color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;min-height:22px;font-size:22px;overflow:hidden}kbd{min-width:28px;height:28px;font-family:var(--pixel), "Segoe UI Symbol", "Apple Symbols", sans-serif;color:var(--ink);border:2px solid var(--ink);background:#fff;border-bottom-width:4px;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;display:inline-flex}.keys{font-family:var(--mono);gap:6px;margin:0;padding:0;font-size:26px;list-style:none;display:grid}.keys li{align-items:center;gap:10px;display:flex}.keys li>span:first-child{gap:4px;min-width:72px;display:flex}.keys small{color:var(--ink-soft);font-size:20px}.keys small kbd{transform:scale(.85)}.keys-title{font-family:var(--pixel);color:var(--ink-soft);text-transform:uppercase;margin-bottom:12px;font-size:13px}.bottle{border:12px solid var(--cyan);width:408px;height:792px;box-shadow:var(--shadow), 0 0 0 3px var(--cyan-deep), inset 0 0 0 2px var(--cyan-deep);background:#000;border-radius:14px;transition:border-color .3s;position:absolute}.bottle:before{content:"";border:12px solid var(--cyan);background:#000;border-bottom:0;border-radius:12px 12px 0 0;width:120px;height:36px;transition:border-color .3s;position:absolute;top:-36px;left:132px}.bottle:after{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffff14,#fff0 14% 86%,#ffffff0a);border-radius:3px;position:absolute;inset:0}.field-canvas{border-radius:3px;width:384px;height:768px;transition:filter .25s;display:block}.bottle.danger,.bottle.danger:before{animation:.7s ease-in-out infinite alternate danger}@keyframes danger{to{border-color:#ff3b3b}}.bottle.paused .field-canvas{filter:blur(16px)brightness(.35)}.bottle.lost .field-canvas{filter:grayscale()brightness(.55)}.bottle-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden}.banner{text-align:center;animation:banner var(--duration) ease forwards;position:absolute;top:36%;left:0;right:0}.banner.stay{animation:.5s cubic-bezier(.3,1.6,.5,1) forwards banner-stay}.banner-title{font-family:var(--pixel);color:#fff;text-shadow:0 4px #000,0 0 22px #07d2fbe6;font-size:34px;line-height:1.2}.banner-sub{font-family:var(--mono);color:var(--cyan-light);text-shadow:0 3px #000;margin-top:10px;font-size:32px}.banner.success .banner-title,.banner.win .banner-title{color:var(--yellow);text-shadow:0 4px #000,0 0 22px #ffa41be6}.banner.lost .banner-title{color:#c9c9d6;text-shadow:0 4px #000}@keyframes banner{0%{opacity:0;transform:scale(.4)}12%{opacity:1;transform:scale(1.1)}20%{transform:scale(1)}82%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}@keyframes banner-stay{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.incoming{z-index:2;pointer-events:none;justify-content:center;gap:6px;display:flex;position:absolute;top:8px;left:0;right:0}.incoming i{background:var(--color);width:18px;height:18px;box-shadow:0 0 10px var(--color);border:3px solid #000;border-radius:50%;animation:.4s ease-in-out infinite alternate incoming}@keyframes incoming{to{transform:translateY(6px)}}.fx-canvas,.popups{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}.popups{z-index:6}.popup{font-family:var(--pixel);color:#fff;white-space:nowrap;text-shadow:0 3px #000,0 0 8px #000c;font-size:18px;animation:1s ease-out forwards popup;position:absolute;transform:translate(-50%,-50%)}.popup.big{color:var(--yellow);font-size:26px}.popup.combo{color:var(--yellow);text-shadow:0 4px #000,0 0 20px #ffa41be6;font-size:30px;animation:1.3s cubic-bezier(.3,1.5,.5,1) forwards combo}@keyframes popup{0%{opacity:0;transform:translate(-50%,-20%)scale(.6)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.15)}to{opacity:0;transform:translate(-50%,-170%)scale(1)}}@keyframes combo{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-8deg)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.15)rotate(3deg)}30%{transform:translate(-50%,-50%)scale(1)rotate(-2deg)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-90%)scale(1)rotate(-2deg)}}.doctor{position:absolute}.doctor-frame{border:10px solid var(--cyan);width:240px;height:240px;box-shadow:var(--shadow);background:#000;border-radius:12px;position:relative}.doctor-photo{object-fit:cover;border-radius:3px;width:100%;height:100%;transition:filter .6s,transform .6s;display:block}.doctor-badge{font-family:var(--pixel);color:#000;white-space:nowrap;background:var(--orange);border:3px solid #000;border-radius:6px;padding:6px 10px 5px;font-size:13px;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)rotate(-3deg);box-shadow:0 4px #00000059}.doctor-frame.bounce{animation:.45s doctor-bounce}.doctor-frame.cheer{animation:.9s doctor-cheer}.doctor-frame.shake{animation:.5s doctor-shake}.doctor.worried .doctor-photo{animation:.35s ease-in-out infinite alternate doctor-worried}.doctor.sad .doctor-photo{filter:grayscale(.85)brightness(.75);transform:rotate(-5deg)translateY(6px)}@keyframes doctor-bounce{40%{transform:translateY(-14px)scale(1.03)}}@keyframes doctor-cheer{20%{transform:translateY(-26px)rotate(-6deg)scale(1.06)}45%{transform:translateY(-8px)rotate(5deg)scale(1.04)}70%{transform:translateY(-18px)rotate(-3deg)scale(1.05)}}@keyframes doctor-shake{20%,60%{transform:translate(-9px)rotate(-2deg)}40%,80%{transform:translate(9px)rotate(2deg)}}@keyframes doctor-worried{0%{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}.bubble{width:220px;font-family:var(--mono);color:var(--ink);opacity:0;transform-origin:0 30px;pointer-events:none;z-index:7;background:#fff;border:4px solid #000;border-radius:16px;padding:12px 14px;font-size:28px;line-height:1.02;transition:opacity .15s,transform .28s cubic-bezier(.3,1.6,.5,1);position:absolute;top:18px;left:calc(100% + 20px);transform:scale(.5);box-shadow:5px 7px #00000059}.bubble:empty{display:none}.bubble:before,.bubble:after{content:"";border:11px solid #0000;border-left:0;border-right:18px solid #000;position:absolute;top:16px;left:-22px}.bubble:after{border-width:8px 14px 8px 0;border-right-color:#fff;top:19px;left:-15px}.bubble.show{opacity:1;transform:scale(1)}.doctor.below .bubble{text-align:center;transform-origin:top;width:250px;margin-left:-125px;top:calc(100% + 34px);left:50%}.doctor.below .bubble:before{border:11px solid #0000;border-top:0;border-bottom:18px solid #000;margin-left:-11px;top:-22px;left:50%}.doctor.below .bubble:after{border:8px solid #0000;border-top:0;border-bottom:14px solid #fff;margin-left:-8px;top:-15px;left:50%}.solo .score-panel{width:388px;height:252px;padding:16px 22px;top:54px;left:108px}.mode-tag{font-family:var(--pixel);color:#fff;background:var(--magenta);text-transform:uppercase;border:3px solid #000;border-radius:6px;padding:6px 10px 5px;font-size:11px;position:absolute;top:-22px;right:18px}.solo .keys-panel{width:388px;height:200px;padding:16px 22px;top:330px;left:108px}.solo .credits-panel{width:388px;height:292px;top:554px;left:108px;overflow:hidden}.credits-panel img{width:368px;height:272px;display:block}.solo .bottle{top:54px;left:536px}.next-panel{flex-direction:column;justify-content:center;align-items:center;gap:8px;width:240px;height:140px;display:flex}.solo .next-panel{top:54px;left:984px}.next-canvas{width:144px;height:77px}.solo .doctor{top:222px;left:984px}.solo .progress-panel{width:240px;height:346px;padding:16px 22px;top:500px;left:984px}.mode-epidemic .progress-panel .stat+.stat{margin-top:10px}.wave-pips{flex-wrap:wrap;justify-content:flex-end;gap:4px;margin-top:10px;display:flex}.wave-pips i{background:#d6dcbc;border:2px solid #1b163040;border-radius:50%;width:13px;height:13px}.wave-pips i.on{background:var(--blue);border-color:var(--ink)}.wave-pips.warn i.on{background:var(--red);animation:.4s step-end infinite blink}@keyframes blink{50%{opacity:.35}}.modal-layer{z-index:10;background:#0000008c;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.modal-layer.open{display:flex}.modal-panel{text-align:center;width:600px;padding:30px 40px;animation:.4s cubic-bezier(.3,1.5,.5,1) modal-in;position:relative}@keyframes modal-in{0%{opacity:0;transform:scale(.7)translateY(30px)}}.modal-panel h2,.scene h2{font-family:var(--pixel);color:var(--ink);margin:0 0 14px;font-size:28px;line-height:1.3}.modal-sub{color:var(--ink-soft);margin:0 0 20px;font-size:28px}.result-score{font-size:104px;line-height:.85}.result-meta{color:var(--ink-soft);margin-bottom:14px;font-size:26px}.loading,.empty,.hint,.notice{color:var(--ink-soft);font-size:24px}.notice{color:#8a1c00;background:#ffe0c2;border-radius:8px;padding:8px 12px}.hint{margin:14px 0 0}.doctor-says{margin:4px 0 0;font-size:28px}.name-form label{font-family:var(--pixel);margin:14px 0 10px;font-size:14px;display:block}.name-form input{width:360px;font-family:var(--mono);text-align:center;color:var(--ink);border:4px solid var(--ink);background:#fff;border-radius:10px;outline:none;padding:6px 12px;font-size:44px}.name-form input:focus{box-shadow:0 0 0 5px var(--cyan)}.board-title{font-family:var(--pixel);color:var(--ink-soft);text-transform:uppercase;margin:6px 0;font-size:13px}.menu{text-align:left;flex-direction:column;gap:6px;display:flex}.menu.horizontal{flex-direction:row;justify-content:center;gap:12px;margin-top:18px}.menu-item{all:unset;font-family:var(--mono);color:var(--ink);cursor:pointer;border-radius:10px;grid-template-columns:1fr auto;align-items:center;padding:8px 18px 8px 52px;font-size:36px;line-height:1;transition:background-color .12s,color .12s,transform .15s;display:grid;position:relative}.menu.horizontal .menu-item{padding:8px 18px 8px 46px;font-size:30px}.menu-hint{color:var(--ink-soft);grid-column:1/-1;font-size:23px}.menu-hint:empty{display:none}.menu-value{font-size:32px}.menu-value i{opacity:.45;font-style:normal}.menu-item.active{color:var(--cream);background:var(--ink);transform:translate(6px)}.menu.horizontal .menu-item.active{transform:translateY(-3px)}.menu-item.active .menu-hint{color:#c9c3e0}.menu-item.active:before{content:"";background:linear-gradient(90deg, var(--red) 50%, var(--yellow) 50%);border:2px solid #000;border-radius:7px;width:24px;height:13px;animation:.6s step-end infinite cursor;position:absolute;top:17px;left:16px}@keyframes cursor{50%{transform:translate(3px)}}.title .logo{text-align:center;position:absolute;top:40px;left:0;right:0}.title h1{font-family:var(--pixel);color:var(--orange);text-shadow:0 6px #a64a00,0 12px #000,0 0 40px #ffa41b80;margin:0;font-size:104px;line-height:1.1}.title h1 span{animation:.8s cubic-bezier(.3,1.6,.5,1) both logo-in;display:inline-block}.title h1 span+span{animation-delay:.12s}@keyframes logo-in{0%{opacity:0;transform:translateY(-80px)scale(.6)}}.title .logo p{color:#fff;text-shadow:0 3px #000;margin:10px 0 0;font-size:36px}.title .doctor{top:300px;left:150px}.title .doctor-frame{width:300px;height:300px}.title .menu-panel{width:600px;padding:20px;top:236px;left:720px}.title-critters{justify-content:center;gap:40px;display:flex;position:absolute;bottom:64px;left:0;right:0}.critter,.inline-critter{image-rendering:pixelated}.title-critters .critter,.scores-critters .critter{width:56px;height:56px;animation:.84s step-end infinite dance;animation-delay:calc(var(--i) * -.28s)}@keyframes dance{50%{transform:translateY(5px)scale(1.12,.86)}}.title-footer{text-align:center;color:#fff;text-shadow:0 2px #000;font-size:26px;position:absolute;bottom:18px;left:0;right:0}.title-footer kbd{margin:0 2px}.scores .scores-panel{text-align:center;width:900px;height:820px;padding:26px 40px;top:40px;left:290px}.scores .doctor{top:120px;left:28px}.scores .doctor-frame{width:230px;height:230px}.scores-critters{flex-direction:column;gap:30px;display:flex;position:absolute;bottom:60px;left:1260px}.tabs{justify-content:center;gap:10px;margin-bottom:12px;display:flex}.tabs button{all:unset;font-family:var(--pixel);color:var(--ink);border:3px solid var(--ink);cursor:pointer;border-radius:8px;padding:10px 16px;font-size:14px}.tabs.small button{padding:7px 12px;font-size:11px}.tabs button.active{color:var(--cream);background:var(--ink)}.table-wrap{min-height:560px}.scores{border-collapse:collapse;width:100%;font-family:var(--mono);text-align:left;font-size:30px}.modal-panel .scores{font-size:26px}.scores th{font-family:var(--pixel);color:var(--ink-soft);text-transform:uppercase;border-bottom:3px solid var(--ink);padding:6px 10px;font-size:11px;font-weight:400}.scores td{border-bottom:1px dashed #1b16302e;padding:2px 10px}.scores .rank{width:48px;color:var(--ink-soft)}.scores .level{width:110px}.scores .score,.scores th:last-child{text-align:right}.scores .name{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.scores .medal-1 .rank{color:#c99700}.scores .medal-2 .rank{color:#7d8794}.scores .medal-3 .rank{color:#b0632a}.scores tr.highlight td{background:var(--yellow);animation:.5s step-end 6 blink}.scores tr.gap td{text-align:center;color:var(--ink-soft);border:0}.help .help-panel{width:1300px;height:828px;padding:28px 44px;top:36px;left:90px}.help-columns{grid-template-columns:1.25fr 1fr;gap:48px;font-size:27px;line-height:1.1;display:grid}.help h3{font-family:var(--pixel);color:var(--magenta);margin:10px 0 8px;font-size:15px}.help p{margin:0 0 12px}.help dl{margin:0}.help dt{font-family:var(--pixel);margin-top:10px;font-size:12px}.help dd{margin:2px 0 0}.keys.large{gap:8px;font-size:30px}.keys.large li>span:first-child{min-width:100px}.help .keys li>span:first-child{white-space:nowrap}.help .doctor{top:560px;left:890px}.help .doctor-frame{width:210px;height:210px}.help .bubble{width:200px}.inline-critter{vertical-align:-6px;width:28px;height:28px}.help .menu{position:absolute;bottom:24px;left:44px}.settings .settings-panel,.versus-setup .settings-panel{text-align:center;width:700px;padding:30px 40px;top:150px;left:390px}.settings-panel .menu{margin-top:10px}.versus .side{flex-direction:column;gap:26px;width:240px;height:792px;display:flex;position:absolute;top:54px}.versus .side-1{left:26px}.versus .side-2{left:1390px}.versus .side .panel{position:relative}.versus .player-panel{padding:14px 20px}.player-name{font-family:var(--pixel);color:var(--magenta);margin-bottom:10px;font-size:16px}.versus .keys-panel.compact{margin-top:auto;padding:14px 16px}.keys-panel.compact .keys{font-size:24px}.versus .bottle-1{top:54px;left:290px}.versus .bottle-2{top:54px;left:956px}.center-column{flex-direction:column;align-items:center;width:238px;height:792px;display:flex;position:absolute;top:54px;left:708px}.versus .doctor{position:relative}.versus .doctor-frame{width:220px;height:220px}.match-panel{text-align:center;width:238px;padding:16px 16px 14px;position:absolute;bottom:0;left:0}.round-label{font-family:var(--pixel);margin-bottom:10px;font-size:15px}.stars-row{justify-content:space-between;align-items:center;font-size:27px;display:flex}.stars i{color:#cfd4b6;text-shadow:0 2px #00000026;font-size:30px;font-style:normal}.stars i.won{color:#f5b800;text-shadow:0 2px #7a5c00;animation:.6s cubic-bezier(.3,1.6,.5,1) star}@keyframes star{0%{transform:scale(2.5)rotate(-40deg)}}.first-to{color:var(--ink-soft);margin-top:8px;font-size:20px}.round-panel{width:640px}.sound-toggle{z-index:20;color:#fff;cursor:pointer;background:#00000073;border:2px solid #fff6;border-radius:50%;width:44px;height:44px;font-size:22px;line-height:1;position:fixed;top:12px;right:12px}.sound-toggle:hover{background:#000000b3}.toast{z-index:20;font-family:var(--pixel);color:#fff;border:2px solid var(--cyan);opacity:0;pointer-events:none;background:#000c;border-radius:10px;padding:10px 18px;font-size:13px;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast.show{animation:1.6s forwards toast}@keyframes toast{10%,75%{opacity:1;transform:translate(-50%,4px)}to{opacity:0}}@media (prefers-reduced-motion:reduce){.scene,.title-critters .critter,.scores-critters .critter,.doctor.worried .doctor-photo{animation:none}}
