:root{font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:#273e35;background:#f5f7f2;font-synthesis:none;--green:#27755d;--ink:#273e35;--muted:#89958b;--line:#dfe6dc;--red:#f27776;--yellow:#efd06b;--blue:#79bce2}*{box-sizing:border-box}body{margin:0;background-image:radial-gradient(#7e9b7711 .8px,transparent .8px);background-size:7px 7px}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #62ad90;outline-offset:4px}button{transition:background .18s,transform .18s,color .18s}button:active:not(:disabled){transform:translateY(1px)}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.topbar{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:auto;padding:0 48px}.brand{color:var(--ink);text-decoration:none;font-size:24px;letter-spacing:-1px;display:flex;align-items:center;gap:12px;font-weight:720}.brand-dot{color:var(--green)}.brand-mark{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;background:#e3eee2}.brand-mark i{display:block;width:22px;height:11px;transform:rotate(-43deg);border-radius:10px;background:linear-gradient(90deg,#2b7a63 50%,#c8cfa0 50%);border:1px solid #2b7a6333}.nav-caption{font-size:11px;letter-spacing:3px;color:#8c978b}.nav-actions{display:flex;align-items:center;gap:9px}.local-badge{font-size:11px;color:#7d8b7d;display:flex;align-items:center;gap:7px;margin-right:17px}.local-badge i,.eyebrow>span{width:5px;height:5px;background:#639b7b;border-radius:50%}.icon-button{border:0;width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#647568}.icon-button:hover{background:#e4ece1;color:var(--green)}main{max-width:1120px;margin:auto;padding:0 40px}.heading{display:flex;align-items:center;justify-content:space-between;margin:34px 0 31px}.eyebrow{font-size:9px;letter-spacing:2.2px;color:#7b8c7c;font-weight:650;display:flex;align-items:center;gap:7px}h1{font-size:38px;line-height:1.2;font-weight:720;letter-spacing:-1.6px;margin:10px 0 9px}h1>span{font-size:15px;font-weight:450;letter-spacing:3px;border-left:1px solid #c8d3c6;padding-left:17px;margin-left:18px;color:#718170}.heading p{font-size:12px;letter-spacing:1px;margin:0;color:#8c978b}.help-button{background:transparent;border:1px solid #d6dfd0;border-radius:24px;padding:10px 15px;display:flex;align-items:center;gap:8px;font-size:11px;color:#677b68}.help-button svg{width:16px;height:16px}.help-button>span{margin-left:10px;color:#8b9987}.help-button:hover{background:#e8efe4}.game-layout{display:grid;grid-template-columns:minmax(190px,1fr) 352px minmax(180px,1fr);gap:52px;padding:0 8px}.left-panel,.right-panel{padding-top:22px}.section-label{font-size:9px;letter-spacing:1.9px;font-weight:700;color:#84927f;display:flex;align-items:center;justify-content:space-between}.section-label>span{font-size:9px;letter-spacing:1px;font-weight:400;color:#97a191}.left-panel h2{font-size:15px;font-weight:600;letter-spacing:.5px;margin:13px 0 20px}.difficulty{display:flex;flex-direction:column;gap:8px}.difficulty-option{display:flex;align-items:center;padding:14px 12px;text-align:left;gap:11px;background:#fafbf7;border:1px solid #e0e6da;border-radius:11px;color:#7d8b76;width:100%;min-height:69px}.difficulty-option:hover{background:#ecf2e7}.difficulty-option.selected{background:#eaf1e4;border-color:#9db790;color:#416b47;box-shadow:0 2px 4px #516b3710}.difficulty-icon{font-size:25px;font-weight:300;width:27px;letter-spacing:-4px;text-align:center;color:#9caa8c}.selected .difficulty-icon{color:#628957}.difficulty-option strong{font-size:12px;font-weight:600;display:block;letter-spacing:2px;margin-bottom:5px}.difficulty-option small{font-size:8px;letter-spacing:.5px;color:#95a089;white-space:nowrap}.radio-dot{width:12px;height:12px;border:1px solid #cbd4c0;border-radius:50%;margin-left:auto;flex-shrink:0}.selected .radio-dot{border:4px solid #7e9c69;background:#fff}.rule-card{margin-top:31px;padding:21px 19px;border:1px dashed #cad6c0;border-radius:12px;background:#f0f4e980}.tiny-label{font-size:10px;letter-spacing:1px;color:#8e9c80}.match-demo{display:flex;gap:4px;align-items:center;margin:17px 0}.mini-pill{display:inline-block;width:20px;height:20px;border-radius:6px;position:relative;background:var(--red);box-shadow:inset 0 -3px 0 #00000015}.mini-pill:after{content:"";position:absolute;left:4px;top:4px;width:6px;height:3px;border-radius:3px;background:#ffffff70}.match-demo .germ{width:24px;height:23px;margin-left:1px}.match-demo b{font-size:25px;color:#9aac78;font-weight:400;margin-left:9px}.rule-card h3{font-size:11px;font-weight:550;letter-spacing:.3px;margin:12px 0 8px}.rule-card p{font-size:10px;line-height:1.9;letter-spacing:.4px;color:#8d9984;margin:0}.relax-note{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:24px;color:#93a181}.relax-note svg{width:25px;height:25px;transform:rotate(-10deg);stroke-width:1.1}.relax-note p{font-size:10px;line-height:1.9;letter-spacing:1px;margin:0}.play-column{min-width:0}.board-toolbar{height:43px;display:flex;justify-content:space-between;align-items:center;padding:0 5px}.live-indicator{font-size:10px;color:#78907a;display:flex;align-items:center;gap:6px}.live-indicator>i{width:5px;height:5px;border-radius:50%;background:#8aa97d}.level-label{font-size:8px;letter-spacing:1.5px;color:#8b9c83;margin-left:10px}.level-label b{font-size:15px;color:#506b51;font-weight:500;letter-spacing:0;margin-left:4px}.board-toolbar>div{display:flex;gap:1px}.board-toolbar .icon-button{width:27px;height:27px}.board-toolbar svg{width:15px;height:15px}.bottle-neck{height:17px;display:flex;align-items:end;justify-content:center;position:relative;z-index:2}.bottle-neck i{width:95px;height:17px;border:5px solid #abcbb6;border-bottom:0;border-radius:8px 8px 0 0;background:#263d37;box-shadow:inset 0 2px 3px #ffffff0d}.bottle-neck span{width:75px;border-bottom:2px solid #f5f7f2}.board-frame{padding:9px;background:linear-gradient(125deg,#c6dbc9,#a0c1ae 50%,#d6e4d1);border:1px solid #99b9a3;border-radius:20px;box-shadow:0 16px 35px -18px #355c4055,0 2px 0 #b3c8b1,inset 0 1px 1px #ffffff;position:relative;margin-top:-2px}.board-inner{position:relative;border:2px solid #657e6c;border-radius:12px;overflow:hidden;background:#203730;box-shadow:0 0 0 1px #e4efdf70}.bottle-shine{position:absolute;top:38px;left:3px;height:55%;width:2px;border-radius:2px;background:linear-gradient(#fff0,#ffffff80,#fff0)}#gameCanvas{display:block;width:100%;aspect-ratio:1/2;touch-action:none;cursor:grab;outline-offset:-3px}#gameCanvas:active{cursor:grabbing}.board-overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(#20373000,#20373080 16%,#203730d9 44%,#203730b3 65%,#20373000);text-align:center;pointer-events:auto}.board-overlay.hidden{display:none}.overlay-content{color:#f2f6e9;width:100%;padding:28px 18px;margin-top:-78px}.overlay-germs{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:26px;height:58px}.overlay-germs .germ{width:39px;height:38px;animation:bob 3s ease-in-out infinite;box-shadow:inset 0 -5px 0 #00000013,0 7px 0 #0b231230}.overlay-germs .yellow{width:47px;height:44px;transform:translateY(-8px);animation-delay:-.8s}.overlay-germs .blue{animation-delay:-1.6s}.overlay-content .overlay-kicker{font-size:9px;letter-spacing:2.6px;color:#a7c4ae;margin:0 0 12px}.overlay-content h2{font-size:24px;letter-spacing:2px;font-weight:500;margin:0 0 12px}.overlay-content p{font-size:11px;line-height:1.9;letter-spacing:.8px;color:#b6cbb9;margin:0 0 25px}.primary-button{border:1px solid #bbd8af;background:#d6e8bd;color:#344e31;font-weight:650;font-size:12px;border-radius:8px;padding:14px 24px;display:inline-flex;align-items:center;justify-content:center;gap:30px;min-width:185px;box-shadow:0 3px 0 #12291e50}.primary-button:hover{background:#e5f1d4}.primary-button svg{width:16px;height:16px}.overlay-small{display:block;font-size:9px;letter-spacing:1px;margin-top:17px;color:#8fac98}.overlay-secondary{display:block;border:0;background:none;color:#a9c5b0;font-size:11px;text-decoration:underline;text-underline-offset:4px;margin:18px auto 0}.board-caption{display:flex;align-items:center;justify-content:space-between;padding:14px 9px 10px;color:#9ba78f;font-size:9px;letter-spacing:1.5px}.board-caption>span:first-child{display:flex;gap:4px}.board-caption i{display:block;width:5px;height:5px;border-radius:50%}.red-dot{background:var(--red)}.yellow-dot{background:var(--yellow)}.blue-dot{background:var(--blue)}.caption-spark{font-size:15px}.touch-controls{display:flex;gap:6px;justify-content:center;margin:3px 0 2px}.touch-controls button{height:32px;flex:1;background:#eef2e9;border:1px solid #d9e2d1;border-radius:7px;color:#778d6b;font-size:18px;touch-action:manipulation}.touch-controls button:hover{background:#e1ebd8}.touch-controls button:last-child{flex:1.6}.touch-controls small{font-size:9px;vertical-align:2px}.right-panel{padding-top:23px}.next-card{border:1px solid #dce5d5;border-radius:13px;padding:19px 18px;background:#fafbf7;min-height:140px}.next-capsules{display:flex;align-items:center;justify-content:center;gap:13px;margin:22px 0 14px;min-height:24px}.pill-pair{display:inline-flex;filter:drop-shadow(0 2px 0 #4053361a)}.pill-pair i{display:block;width:20px;height:23px;position:relative;border:1px solid #0000000a;box-shadow:inset 0 -4px 0 #0000000b}.pill-pair i:first-child{border-radius:13px 2px 2px 13px}.pill-pair i:last-child{border-radius:2px 13px 13px 2px}.pill-pair i:after{content:"";position:absolute;top:4px;left:4px;width:8px;height:3px;border-radius:3px;background:#ffffff60}.next-capsules .pill-pair:not(:first-child){transform:scale(.75);opacity:.6}.next-note{display:block;text-align:center;font-size:9px;color:#9ba58f;letter-spacing:1px}.red{background:var(--red)}.yellow{background:var(--yellow)}.blue{background:var(--blue)}.score-block{padding:31px 3px 25px;border-bottom:1px solid var(--line)}.score-number{font-family:"Segoe UI",sans-serif;font-weight:350;letter-spacing:1px;font-size:43px;line-height:1.2;margin:13px 0 12px;color:#385a43;font-variant-numeric:tabular-nums}.best-score{display:flex;align-items:center;gap:6px;font-size:9px;color:#94a083;letter-spacing:.5px}.best-score svg{width:12px;height:12px}.best-score b{font-weight:500;color:#718567;margin-left:auto}.virus-block{padding:25px 3px 0}.virus-count{display:flex;align-items:center;justify-content:space-between;margin:13px 0 16px}.virus-count>strong{font-size:35px;font-weight:350;color:#506a49;font-variant-numeric:tabular-nums}.germ-trio{display:flex;gap:8px;align-items:center;padding-right:4px}.germ{display:inline-block;position:relative;width:24px;height:24px;border-radius:9px 9px 7px 7px;box-shadow:inset 0 -3px 0 #00000016;color:#4c4d45;isolation:isolate}.germ:before,.germ:after{content:"";position:absolute;top:38%;width:5px;height:7px;background:#fff9e7;border-radius:50%;box-shadow:inset 0 -2px 0 #293e4290}.germ:before{left:22%}.germ:after{right:22%}.germ i{position:absolute;bottom:18%;left:38%;width:25%;height:17%;border-bottom:2px solid #473e4566;border-radius:50%}.germ i:before,.germ i:after{content:"";position:absolute;width:4px;height:7px;background:inherit;background-color:var(--red);bottom:19px;z-index:-1;transform:rotate(-25deg);border-radius:2px}.germ i:before{left:-6px}.germ i:after{right:-6px;transform:rotate(25deg)}.germ.yellow{border-radius:50% 50% 9px 9px}.germ.yellow i:before,.germ.yellow i:after{background-color:var(--yellow)}.germ.blue{border-radius:6px 6px 9px 9px}.germ.blue i:before,.germ.blue i:after{background-color:var(--blue)}.progress-track{height:4px;border-radius:4px;background:#e1e7d9;overflow:hidden}.progress-track>span{display:block;height:100%;width:0;background:#83a774;border-radius:4px;transition:width .4s}.progress-label{display:flex;justify-content:space-between;font-size:8px;color:#99a38c;margin-top:9px;letter-spacing:.5px}.progress-label b{font-weight:500}.session-stats{border-top:1px solid var(--line);margin-top:26px;padding:22px 3px 0;display:flex;flex-direction:column;gap:16px}.session-stats>div{display:flex;justify-content:space-between;font-size:10px;color:#929d85;letter-spacing:.5px}.session-stats b{font-weight:500;font-size:11px;color:#657c57;font-variant-numeric:tabular-nums}.status-note{display:flex;gap:7px;align-items:center;border-radius:7px;background:#edf2e5;margin-top:29px;padding:12px 10px;font-size:9px;letter-spacing:.2px;color:#94a17d}.status-note>i{width:4px;height:4px;border-radius:50%;background:#a3b68b}.controls-guide{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:32px;padding:19px 8px;display:flex;align-items:center;gap:30px}.guide-touch{display:flex;gap:12px;align-items:center;min-width:200px}.guide-touch svg{width:23px;height:23px;color:#8c9e81;stroke-width:1.3}.guide-touch strong{display:block;font-size:10px;font-weight:550;color:#637c57;letter-spacing:1px}.guide-touch small{display:block;font-size:9px;color:#98a38b;margin-top:5px}.keyboard-guide{display:flex;gap:15px;align-items:center;justify-content:space-between;flex:1}.keyboard-guide>span{font-size:9px;white-space:nowrap;color:#96a089;display:flex;align-items:center;gap:4px}kbd{font-family:inherit;min-width:20px;height:22px;padding:3px 5px;background:#fafbf7;border:1px solid #dce4d4;border-bottom-width:2px;border-radius:4px;color:#889a7c;display:inline-flex;justify-content:center;align-items:center;font-size:9px}footer{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.2px;color:#aab2a0;padding:22px 0 26px}footer i{font-style:normal;padding:0 7px}.chain-toast{position:absolute;top:28%;left:0;width:100%;text-align:center;pointer-events:none;font-weight:700;color:#f4e3a3;text-shadow:0 2px 10px #152e21;font-size:22px;letter-spacing:1px;opacity:0;transition:opacity .2s}.chain-toast.show{opacity:1}.chain-toast small{display:block;font-size:12px;color:#d4e5ba;margin-top:5px}dialog{border:1px solid #d9e4d0;border-radius:20px;background:#f8faf3;color:var(--ink);width:min(440px,calc(100% - 32px));max-height:90dvh;padding:26px;box-shadow:0 30px 90px #152a3d30}dialog::backdrop{background:#15312470;backdrop-filter:blur(5px)}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}#modalContent h2{font-size:23px;letter-spacing:1px;margin:12px 0 10px;font-weight:550}#modalContent p{font-size:12px;line-height:1.9;color:#849379;margin:10px 0 22px}.modal-actions{display:flex;gap:9px;margin-top:25px}.modal-actions button{flex:1;min-width:0;gap:8px}.secondary-button{border:1px solid #cddac1;border-radius:8px;padding:12px;background:#eff4e8;color:#6e805e;font-size:12px}.tutorial-step{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid #e0e7d8}.tutorial-step>b{width:25px;height:25px;background:#e5edda;border-radius:8px;display:grid;place-items:center;font-size:11px;color:#7b9362;flex-shrink:0}.tutorial-step h3{font-size:12px;font-weight:600;margin:2px 0 6px}.tutorial-step p{font-size:11px!important;margin:0!important}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);gap:15px}.setting-row>span strong{display:block;font-size:12px;font-weight:550}.setting-row small{display:block;font-size:10px;color:#93a084;margin-top:7px}.setting-row input[type=checkbox]{appearance:none;width:37px;height:22px;border-radius:15px;background:#d3ddc8;position:relative;flex-shrink:0;cursor:pointer}.setting-row input[type=checkbox]:checked{background:#779f69}.setting-row input[type=checkbox]:before{content:"";position:absolute;background:white;width:16px;height:16px;border-radius:50%;top:3px;left:3px;transition:transform .2s}.setting-row input[type=checkbox]:checked:before{transform:translateX(15px)}.setting-row input[type=range]{width:110px;accent-color:#779f69}.result-numbers{display:flex;justify-content:center;gap:30px;margin:0 0 24px}.result-numbers b{font-size:24px;display:block;font-weight:500}.result-numbers span{font-size:9px;color:#abc6ae;letter-spacing:1px}.save-notice{font-size:10px;color:#9bb292;line-height:1.8}.modal-footnote{font-size:9px!important;line-height:1.8!important;margin-top:22px!important}.modal-footnote a{color:#648458}.reduced-motion *{animation:none!important;transition:none!important}@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -6px}}@media(min-width:1400px){.topbar{height:90px}.heading{margin-top:40px;margin-bottom:35px}.game-layout{grid-template-columns:minmax(210px,1fr) 352px minmax(195px,1fr)}}@media(max-width:1000px){main{padding:0 28px}.game-layout{gap:26px;grid-template-columns:minmax(170px,1fr) 312px minmax(160px,1fr)}.difficulty-option{gap:7px;padding:12px 9px}.difficulty-option small{font-size:7px}.rule-card{padding:18px 13px}.keyboard-guide{gap:9px;flex-wrap:wrap}.controls-guide{gap:20px}.guide-touch{min-width:160px}.germ-trio{gap:5px}.next-card{padding:16px 12px}.next-capsules{gap:4px}.score-number{font-size:38px}.topbar{padding:0 28px}}@media(max-width:800px){.topbar{height:68px}.nav-caption{display:none}main{max-width:690px}.heading{margin:27px 0}.game-layout{grid-template-columns:1fr 190px;gap:28px;padding:0}.left-panel{grid-column:1/-1;padding:0}.left-panel>.section-label,.left-panel h2,.rule-card,.relax-note{display:none}.difficulty{flex-direction:row;gap:9px}.difficulty-option{flex:1;min-width:0;min-height:56px}.difficulty-option strong{font-size:11px}.difficulty-icon{font-size:23px}.difficulty-option small{font-size:7px;letter-spacing:0}.play-column{max-width:350px;grid-column:1;margin:0 auto;width:100%}.right-panel{grid-column:2;padding-top:56px}.controls-guide{margin-top:26px;align-items:start}.keyboard-guide{justify-content:start;gap:10px 16px}.heading h1{font-size:33px}.heading h1>span{font-size:12px;margin-left:13px;padding-left:13px}.status-note{line-height:1.6}.game-layout{row-gap:15px}}@media(max-width:520px){.topbar{padding:0 20px;height:63px}.brand{font-size:22px}.brand-mark{width:29px;height:29px}.local-badge{font-size:9px;margin-right:2px}.nav-actions{gap:2px}.nav-actions .icon-button{width:29px}.topbar .nav-caption{display:none}main{padding:0 19px}.heading{margin:25px 0 22px}.heading h1{font-size:29px;letter-spacing:-1px}.heading h1>span{font-size:11px;padding-left:10px;margin-left:10px;letter-spacing:1px}.heading p{font-size:10px}.eyebrow{font-size:7px;letter-spacing:1.4px}.help-button{padding:8px;border:0;font-size:0;gap:0}.help-button svg{width:21px;height:21px}.help-button>span{display:none}.game-layout{display:flex;flex-direction:column;gap:0}.difficulty{gap:7px}.difficulty-option{padding:10px 7px;gap:4px;border-radius:8px;min-height:55px}.difficulty-icon{font-size:21px;width:22px}.difficulty-option small{font-size:6px}.difficulty-option strong{font-size:10px;letter-spacing:1px}.radio-dot{width:9px;height:9px}.selected .radio-dot{border-width:3px}.play-column{width:min(100%,332px);margin-top:12px}.right-panel{display:grid;grid-template-columns:1fr 1fr;padding-top:25px;gap:16px;margin-bottom:2px}.next-card{grid-column:2;grid-row:1;min-height:115px;padding:16px}.next-capsules{margin:16px 0 11px}.score-block{grid-column:1;grid-row:1;padding:13px 0 0;border-bottom:0}.score-number{font-size:36px;margin:8px 0}.virus-block{padding:15px 0 0;border-top:1px solid var(--line)}.virus-count{margin:9px 0 10px}.virus-count>strong{font-size:29px}.germ-trio{gap:5px}.germ-trio .germ{width:21px;height:21px}.session-stats{margin:0;padding:18px 0 0;gap:19px}.status-note{display:none}.controls-guide{margin-top:23px;flex-direction:column;gap:17px;padding:18px 0}.keyboard-guide{gap:10px 15px}.guide-touch{gap:9px}.guide-touch small{display:inline;font-size:9px;margin-left:12px}.guide-touch strong{display:inline;font-size:10px}.guide-touch svg{width:18px;height:18px}footer{font-size:7px;letter-spacing:.3px;gap:10px}.board-caption{font-size:8px}.overlay-content h2{font-size:23px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
/* Keep the whole bottle reachable on laptop and phone screens. */
@media (min-width:801px) and (max-height:850px){
  .topbar{height:60px}.heading{margin:20px 0 16px}.heading h1{font-size:30px;margin:7px 0}.heading p{font-size:11px}.heading .eyebrow{font-size:8px}
  .game-layout{grid-template-columns:minmax(190px,1fr) clamp(214px,calc((100dvh - 280px)/2),285px) minmax(180px,1fr);gap:55px;max-width:920px;margin:auto}
  .board-toolbar{height:33px}.board-toolbar .level-label{margin-left:0}.board-toolbar .live-indicator{font-size:8px}.board-toolbar .icon-button{width:23px}.bottle-neck{height:13px}.bottle-neck i{height:13px;width:75px}
  .overlay-content{margin-top:-15px;padding:16px 10px}.overlay-germs{gap:10px;margin-bottom:19px}.overlay-germs .germ{width:29px;height:29px}.overlay-germs .yellow{width:34px;height:33px}.overlay-content h2{font-size:18px;letter-spacing:1px}.overlay-content .overlay-kicker{font-size:6px;letter-spacing:1.3px}.overlay-content p{font-size:9px;margin-bottom:17px}.overlay-small{font-size:8px;margin-top:13px}.overlay-content .primary-button{font-size:10px;min-width:155px;padding:11px 15px;gap:18px}.overlay-secondary{font-size:9px;margin-top:13px}.result-numbers{margin-bottom:18px;gap:22px}.result-numbers b{font-size:19px}.result-numbers span{font-size:8px}
  .left-panel,.right-panel{padding-top:8px}.left-panel h2{font-size:13px;margin:10px 0 14px}.difficulty-option{min-height:56px;padding:10px 12px}.rule-card{margin-top:20px;padding:15px 18px}.match-demo{margin:12px 0}.relax-note{margin-top:17px}.next-card{min-height:120px;padding:15px 18px}.next-capsules{margin:17px 0 10px}.score-block{padding:20px 3px 18px}.score-number{font-size:35px;margin:10px 0}.virus-block{padding-top:18px}.virus-count{margin:7px 0 10px}.virus-count>strong{font-size:30px}.session-stats{margin-top:19px;padding-top:16px;gap:12px}.status-note{margin-top:20px}.controls-guide{margin-top:22px;padding:15px 8px}.board-caption{padding:10px 4px;font-size:8px;letter-spacing:.5px}
}
@media (max-width:520px){.play-column{width:min(100%,332px,calc((100dvh - 250px)/2))}.overlay-content{margin-top:-20px;padding:16px 10px}.overlay-germs{margin-bottom:20px}.overlay-content h2{font-size:20px}.overlay-content .overlay-kicker{font-size:7px;letter-spacing:1px}.overlay-content p{font-size:10px}.overlay-content .primary-button{min-width:160px;font-size:11px;padding:12px 18px}.board-toolbar .live-indicator{font-size:9px}.board-toolbar .level-label{margin-left:0}.board-caption{letter-spacing:.5px}.result-numbers{margin-bottom:19px}.result-numbers b{font-size:20px}}

.mobile-help-button{display:none}
@media (max-width:520px){
  html{overscroll-behavior-y:none}
  body{min-height:100svh;overflow-x:hidden;overscroll-behavior-y:contain;padding-bottom:env(safe-area-inset-bottom)}
  .topbar{height:calc(52px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .local-badge{display:none}
  .mobile-help-button{display:inline-flex}
  .nav-actions{gap:2px}
  .nav-actions .icon-button{width:42px;height:42px}
  main{padding-left:12px;padding-right:12px}
  .heading{margin:8px 0}
  .heading .eyebrow,.heading p,.heading .help-button{display:none}
  .heading h1{font-size:22px;line-height:30px;letter-spacing:-.5px;margin:0}
  .heading h1>span{font-size:11px;letter-spacing:1px;padding-left:9px;margin-left:9px}
  .play-column{margin-top:8px}
  .board-caption{display:none}
  #gameCanvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
  .touch-controls{width:min(calc(100vw - 24px),380px);gap:7px;margin:8px 50% 0;transform:translateX(-50%)}
  .touch-controls button{min-width:0;min-height:48px;height:48px;border-radius:12px;font-size:21px;font-weight:600;box-shadow:0 2px 0 #9ca99333;transition:background .12s,transform .12s}
  .touch-controls button:active:not(:disabled){transform:scale(.96);background:#dbe7d3}
  .touch-controls small{font-size:10px}
  .controls-guide,footer{display:none}
  dialog{width:calc(100% - 20px);max-height:calc(100svh - 20px);padding:20px;border-radius:18px}
  .modal-actions{flex-direction:column}
  .modal-actions button{min-height:46px}
  .setting-row{min-height:58px;padding:12px 0}
}
