@font-face{font-family:Petri;src:url('assets/quicksand-regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Petri;src:url('assets/quicksand-bold.ttf') format('truetype');font-weight:700 1000;font-display:swap}
:root{color-scheme:dark;font-family:Petri,'Trebuchet MS',ui-rounded,system-ui,sans-serif;color:#fff0c7;background:#081320;font-synthesis:none}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 39% 32%,#17313355,transparent 65%),repeating-linear-gradient(117deg,#ffffff02 0 1px,transparent 1px 4px),#081320}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #ffe29a;outline-offset:5px}.lab{isolation:isolate;position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:16px;padding:20px 26px 20px 8px;align-items:center;overflow:hidden}.lab:before{content:'';position:absolute;z-index:-1;inset:21% 25% 0 -12%;transform:rotate(-19deg);background:repeating-linear-gradient(0deg,#8eafb408 0 1px,transparent 1px 5px),repeating-linear-gradient(90deg,#b9d5e107 0 1px,transparent 1px 5px),linear-gradient(30deg,#152940,#112033);border-radius:30%;box-shadow:inset 0 0 80px #0007}header{position:absolute;left:24px;top:24px;z-index:2;pointer-events:none}.brand{display:flex;flex-direction:column;color:#fff0ce;text-decoration:none;font-size:clamp(30px,3.3vw,51px);font-weight:1000;letter-spacing:-2px;line-height:.86;filter:drop-shadow(0 3px 3px #0009);pointer-events:auto}.brand>span:last-child{margin-top:5px}.logo-cell{display:inline-grid;place-items:center;background:radial-gradient(circle at 35% 25%,#fff5b4,#edb942 45%,#c67f29 70%,#f7de8f 73%,#d69b32 84%,#fff2c5 87%);border-radius:50%;font-size:.73em;color:#fff3c7;transform:rotate(-15deg);width:1.05em;height:1.05em;vertical-align:2px;letter-spacing:0;border:2px solid #ffe9aa;margin:0 1px}.arena{position:relative;aspect-ratio:1;width:100%;max-width:calc(100svh + 60px);justify-self:center;z-index:1;margin:-30px 0}canvas{display:block;width:100%;height:100%;touch-action:none}.overlay{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#071d1a9c,transparent 60%)}.overlay.hidden{display:none}.overlay-card{text-align:center;width:70%;padding:25px 8px;text-shadow:0 3px 15px #031615}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:#f4d78f}.overlay h1{font-weight:900;font-size:clamp(35px,4.6vw,70px);line-height:1.04;letter-spacing:-2px;margin:17px 0;color:#fff1c6;text-shadow:0 3px 0 #5f4d2f,0 6px 24px #041514}.overlay p{font-size:16px;line-height:1.6;color:#e0e4cd;margin:0 0 24px}.primary{border:1px solid #fff0b6;border-bottom:4px solid #ac792d;background:linear-gradient(#fff0b9,#f7ce70);color:#384236;padding:14px 24px;border-radius:13px;box-shadow:0 5px 20px #0007,inset 0 2px #fff7d8;font-weight:900;font-size:16px;min-width:200px}.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.primary span{margin-left:22px}.overlay small{display:block;font-size:9px;letter-spacing:1px;color:#bbd0b6;margin-top:17px}aside{width:100%;position:relative;z-index:3;max-width:350px;justify-self:center}.scoreblock{display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:center;padding:0 0 22px}.label{font-size:12px;color:#c0c8d3;font-weight:800;display:block;line-height:1.5}.scoreblock strong{font-size:42px;line-height:1;font-weight:900;letter-spacing:-1px;color:#ffd882;font-variant-numeric:tabular-nums;text-shadow:0 2px #594321}.scoreblock time{font-size:25px;font-weight:900;font-variant-numeric:tabular-nums;padding:0 14px;border-left:1px solid #8898af45}.icon{display:inline-grid;place-items:center;position:relative;background:linear-gradient(#29364a,#172233);border:2px solid #7a889e88;border-bottom:3px solid #07101d;border-radius:50%;width:33px;height:33px;font-size:19px;color:#f2f0e8;box-shadow:inset 0 1px #ffffff20,0 3px 6px #0004}.icon:hover{filter:brightness(1.3)}.pause-button{width:48px;height:48px;font-size:30px;font-family:system-ui,sans-serif}.sound-off{position:absolute;left:15px;top:4px;color:#f3b786}.side-card{padding:23px 22px 16px;background:linear-gradient(130deg,#101e2ce8,#081420ed);border:1px solid #53647b66;border-radius:19px 0 0 19px;box-shadow:0 10px 35px #0003,inset 1px 1px 0 #ffffff05}.lesson{text-align:center}.lesson h2{font-size:23px;font-weight:900;color:#fff0b9;margin:0 0 19px;letter-spacing:.3px;transform:rotate(-1deg)}.lesson svg{display:block;width:100%;height:auto;margin:auto}.handwritten{font-family:Petri,'Comic Sans MS','Segoe Print',cursive;font-size:21px;line-height:1.15;font-style:italic;color:#c1c9d3;text-align:center;margin:14px 0;transform:rotate(-2deg)}.howto{font-size:10px;color:#889da9;line-height:1.6;margin:0 0 22px;text-align:center}.last{padding:17px 0;border-top:1px solid #8b9daf55;text-align:center}.capture-box{margin-top:4px;padding:8px 8px 10px;border:1px solid #65778b66;box-shadow:inset 0 1px 4px #0005;border-radius:15px}.last strong{display:block;font-size:29px;color:#ffda88;font-weight:900;text-shadow:0 2px #4d391f;line-height:1.15}.last strong:not(:first-child){font-size:28px}.capture-box>span{font-size:9px;line-height:1.5;display:block;color:#94a6af}.capture-icons{display:flex;align-items:center;justify-content:center;gap:16px;height:32px}.capture-icons i{display:block}.mini-cell{width:19px;height:19px;border-radius:40%;background:radial-gradient(circle at 30% 25%,#ffe9bc,#ee9f68 45%,#ae5137 90%);box-shadow:0 2px 3px #0005;transform:rotate(-17deg)}.mini-cell.peach{border-radius:55% 35% 55% 35%;background:radial-gradient(circle at 30% 25%,#ffdfcc,#e18c89 55%,#9d4e62 90%)}.mini-nutrient{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#eaf4b8,#82ab36 55%,#3c651f 90%);box-shadow:0 2px 3px #0005}.best{display:flex;align-items:center;justify-content:center;gap:15px;text-align:center;padding:10px 0 19px;border-bottom:1px solid #8b9daf55}.crown{font-size:35px;color:#ffd37e;transform:rotate(-8deg)}.best b{font-size:29px;color:#fff0cf;font-weight:900;line-height:1.1}.best .label{font-size:12px}footer{position:relative;padding-top:19px;text-align:center}.keys{text-align:center;white-space:nowrap}kbd{display:inline-grid;place-items:center;width:33px;height:34px;margin:2px;border:2px solid #7a889d88;border-bottom-width:4px;background:linear-gradient(#2e3b4c,#182433);box-shadow:inset 0 1px #ffffff20,0 2px 4px #0005;border-radius:6px;color:#e0e6eb;font-size:24px;font-family:system-ui,sans-serif;line-height:1}.keys>kbd{display:grid;margin:0 auto 3px}footer .handwritten{font-size:18px;margin:5px 0}.control-copy{font-size:9px;color:#7f95a5;margin:9px 0 0;line-height:1.6}.control-copy span{color:#c4c8b2}.mobile-tip{display:none}.tools{position:absolute;right:-5px;top:25px;display:flex;flex-direction:column;gap:8px}.legend{display:flex;justify-content:center;gap:13px;padding-top:12px;color:#8ea3a9;font-size:9px}.legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.nutrient{background:#b5d865}.cell{background:#eea17a}.hazard{background:#26303a;border:1px solid #76838b}.toast{position:absolute;top:28%;left:20%;right:20%;text-align:center;pointer-events:none;color:#ffe28b;text-shadow:0 2px 0 #5e532a,0 2px 20px #071813;font-size:42px;font-weight:900;opacity:0;transition:opacity .15s}.toast.show{opacity:1}.toast small{display:block;font-size:11px;letter-spacing:1px;margin-top:6px;color:#f7e6ae}.slide-prop{position:absolute;bottom:35px;right:322px;z-index:0;transform:rotate(-30deg);width:65px;height:185px;border:3px solid #b8c4cd55;border-radius:7px;background:linear-gradient(100deg,#d5e8e61c,#a9c7bc44,#d5e8e619);box-shadow:0 2px 15px #0007}.slide-prop i{display:block;width:21px;height:21px;margin:24px auto;border-radius:50%;border:1px solid #92c5b344;background:radial-gradient(#7bb79055,#3f97822a)}
@media(min-width:1600px){.lab{grid-template-columns:minmax(0,1fr) 310px;padding-right:30px;gap:25px}.side-card{padding:27px}.arena{max-width:calc(100svh + 90px)}.scoreblock strong{font-size:48px}.lesson h2{font-size:25px}.slide-prop{right:350px}}
@media(max-height:820px) and (min-width:701px){.lab{padding-top:12px;padding-bottom:12px;grid-template-columns:minmax(0,1fr) 250px}.side-card{padding:16px 18px 11px}.scoreblock{padding-bottom:14px;gap:7px}.scoreblock strong{font-size:35px}.scoreblock time{font-size:22px;padding:0 10px}.pause-button{width:41px;height:41px;font-size:26px}.lesson h2{font-size:20px;margin-bottom:12px}.lesson svg{width:87%}.handwritten{font-size:18px;margin:10px 0}.howto{margin-bottom:13px;font-size:9px}.last{padding:12px 0}.last strong{font-size:27px}.capture-icons{height:27px}.best{padding:5px 0 12px}.best b{font-size:25px}footer{padding-top:12px}kbd{width:29px;height:29px;font-size:21px}.control-copy{font-size:8px;margin-top:5px}.legend{padding-top:7px;font-size:8px}.tools{top:17px}.slide-prop{right:280px}}
@media(max-width:1000px) and (min-width:701px){.lab{grid-template-columns:minmax(0,1fr) 240px;gap:4px;padding-right:15px}header{left:14px;top:20px}.brand{font-size:33px}.side-card{padding:16px}.scoreblock{gap:7px}.scoreblock time{padding:0 7px;font-size:21px}.scoreblock strong{font-size:35px}.pause-button{width:39px;height:39px}.overlay h1{font-size:40px}.overlay p{font-size:13px}.arena{margin:0}.slide-prop{display:none}}
@media(max-width:700px){.lab{display:flex;flex-direction:column;gap:0;padding:15px 8px 22px;overflow:hidden}header{position:relative;top:auto;left:auto;display:flex;width:100%;align-items:center;justify-content:space-between;padding:0 12px;pointer-events:auto}.brand{flex-direction:row;font-size:26px;letter-spacing:-1px;align-items:center;gap:7px}.brand>span:last-child{margin:0}.logo-cell{border-width:1px}.arena{width:100%;max-width:530px;margin:4px 0 0}.overlay-card{width:80%}.overlay h1{font-size:38px;letter-spacing:-1px;margin:12px 0}.overlay .eyebrow{font-size:7px}.overlay p{font-size:12px;line-height:1.5;margin:0 0 16px}.overlay small{font-size:7px;letter-spacing:.3px;margin-top:12px}.primary{font-size:13px;min-width:175px;padding:11px 17px;border-radius:10px}.toast{font-size:28px;top:24%}.toast small{font-size:8px}aside{max-width:510px;margin-top:-2px;padding:0 12px}.scoreblock{grid-template-columns:1fr auto auto;gap:12px;padding:0 4px 13px}.scoreblock>div{display:flex;align-items:center;gap:10px}.label{font-size:10px}.scoreblock strong{font-size:34px}.scoreblock time{font-size:25px;padding:0 12px}.pause-button{width:41px;height:41px;font-size:26px}.side-card{display:grid;grid-template-columns:1.5fr 1fr;padding:13px 14px 10px;gap:0 14px;border-radius:15px}.lesson{display:none}.last{border:0;padding:0;text-align:left}.capture-box{border:0;border-radius:0;padding:4px 0 0;margin:0;box-shadow:none}.last strong{font-size:25px}.capture-icons{display:none}.capture-box>span{font-size:8px;margin-top:4px}.best{border:0;border-left:1px solid #8b9daf44;padding:0 0 0 12px;gap:8px;align-self:center}.best b{font-size:25px}.best .label{font-size:9px}.crown{font-size:27px}footer{grid-column:1/-1;border-top:1px solid #8b9daf33;margin-top:12px;padding-top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}.keys,footer .handwritten{display:none}.control-copy{text-align:left;font-size:8px;margin:0}.mobile-tip{display:block;font-size:11px;color:#e9d3a4!important}.tools{position:static;flex-direction:row;gap:7px}.icon{width:31px;height:31px}.pause-button{width:41px;height:41px}.legend{grid-column:1/-1;font-size:8px;padding-top:10px}.slide-prop{display:none}}
@media(prefers-reduced-motion:reduce){.primary:hover{transform:none}.toast{transition:none}}

.lesson svg{margin-bottom:17px}.howto{font-size:12px;line-height:1.6;margin-bottom:21px}.overlay h1{font-size:clamp(35px,4.4vw,65px)}@media(max-width:700px){.overlay h1{font-size:35px}}

.goal-card{margin-bottom:13px;padding:13px 15px;background:linear-gradient(125deg,#143831e8,#102731e8);border:1px solid #85d9cc66;border-radius:13px;color:#c4fff1}.goal-heading{display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.8px}.goal-heading span:last-child{font-variant-numeric:tabular-nums;color:#e8f6d3}.goal-reward{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:5px}.goal-reward span{font-size:12px}.goal-reward strong{font-size:24px;color:#c9ffe9}.goal-card p{font-size:9px;color:#a1bfb6;margin:4px 0 0}.goal-card.waiting{border-color:#748e8c44}.scoreblock time.urgent{color:#ffc391}.lesson svg{height:105px;margin-bottom:10px}.lesson h2{font-size:19px;margin-bottom:10px}.howto{font-size:10px;margin-bottom:14px}
@media(max-height:820px) and (min-width:701px){.goal-card{padding:9px 12px;margin-bottom:10px}.goal-reward strong{font-size:21px}.goal-reward span{font-size:10px}.goal-card p{font-size:8px}.side-card{padding:12px 16px 9px}.lesson svg{height:83px}.howto{font-size:9px;margin-bottom:10px}.last{padding:10px 0}.capture-icons{height:23px}.best{padding-bottom:9px}footer{padding-top:9px}}
@media(max-width:700px){.goal-card{margin-bottom:12px;padding:10px 13px}.goal-reward{margin-top:2px}.goal-reward strong{font-size:22px}.goal-card p{font-size:8px}.overlay p{font-size:11px}.overlay h1{font-size:33px}}

#speed{display:inline-block;margin-left:5px;color:#8cdbcb;font-size:8px;letter-spacing:0;font-weight:700;white-space:nowrap}

.toast[data-tier="2"],.toast[data-tier="3"]{color:#fff0ba;text-shadow:0 3px #755625,0 0 28px #f6c35d99;font-size:clamp(36px,5vw,68px)}.toast[data-tier="3"]{color:#fff5dc}.toast.show[data-tier="2"],.toast.show[data-tier="3"]{animation:capture-pop .42s cubic-bezier(.16,.8,.24,1.2)}.score-hit{animation:score-hit .42s ease-out}@keyframes capture-pop{from{transform:scale(.72);filter:brightness(1.8)}to{transform:scale(1);filter:brightness(1)}}@keyframes score-hit{30%{transform:scale(1.12);color:#fff7cf;text-shadow:0 0 18px #ffdb86}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.toast.show[data-tier],.score-hit{animation:none}}@media(max-width:700px){.toast[data-tier="2"],.toast[data-tier="3"]{font-size:38px}.toast small{line-height:1.5}}
