:root{font-family:system-ui,sans-serif;color:#e8e8ea;background:#161619;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}#app{min-height:100dvh;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}button,select{font:inherit;color:inherit;touch-action:manipulation}button{cursor:pointer;min-height:48px;border:1px solid #3c3c43;border-radius:6px;background:transparent;padding:12px 24px}button:hover{background:#25252b}button:focus-visible,select:focus-visible{outline:2px solid #b6b6c9;outline-offset:4px}button:disabled{opacity:.3;cursor:default}.tower-menu{position:fixed;inset:0;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:url(/assets/%D0%9F%D0%B8%D0%BA%D1%81%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%81%D0%B8%D0%BB%D1%83%D1%8D%D1%82%20%D0%B3%D0%BE%D1%80%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%B0-By-_Abie.png) center bottom / 100% 65% no-repeat,radial-gradient(ellipse at 28% 15%,#44435e 0,#25263e 40%,#121523 85%)}.tower-scene{position:absolute;z-index:2;inset:0 43% 0 0;overflow:hidden;pointer-events:none;isolation:isolate}.tower{position:absolute;z-index:2;bottom:-3%;left:52%;translate:-50% 0;width:100%;height:104%;object-fit:contain;object-position:center bottom;-webkit-user-select:none;user-select:none}.cloud-layer{position:absolute;inset:0;pointer-events:none}.clouds-behind{z-index:1;opacity:.3}.clouds-ahead{z-index:3;opacity:.43}.cloud{position:absolute;display:block;width:calc(var(--width, 34%) * .57);height:var(--height, 5%);top:var(--top);left:0;background:linear-gradient(#a9a7bf,#777f9d);clip-path:var(--shape);animation:cloud-drift calc(var(--duration, 65s) * .55) linear infinite;animation-delay:var(--delay, 0s)}.cloud-one{--top: 25%;--width: 43%;--height: 8%;--duration: 78s;--delay: -20s;--shape: polygon(0 48%, 15% 48%, 15% 25%, 29% 25%, 29% 0, 50% 0, 50% 23%, 68% 23%, 68% 40%, 87% 40%, 87% 63%, 100% 63%, 100% 100%, 0 100%)}.cloud-two{--top: 48%;--width: 32%;--height: 6%;--duration: 96s;--delay: -70s;--shape: polygon(0 45%, 21% 45%, 21% 15%, 40% 15%, 40% 0, 61% 0, 61% 35%, 84% 35%, 84% 60%, 100% 60%, 100% 100%, 0 100%)}.cloud-three{--top: 12%;--width: 27%;--height: 4%;--duration: 110s;--delay: -58s;--shape: polygon(0 50%, 15% 50%, 15% 25%, 47% 25%, 47% 0, 68% 0, 68% 50%, 90% 50%, 90% 70%, 100% 70%, 100% 100%, 0 100%)}.cloud-four{--top: 61%;--width: 49%;--height: 8%;--duration: 62s;--delay: -35s;--shape: polygon(0 60%, 12% 60%, 12% 30%, 29% 30%, 29% 5%, 47% 5%, 47% 25%, 63% 25%, 63% 0, 77% 0, 77% 45%, 92% 45%, 92% 70%, 100% 70%, 100% 100%, 0 100%)}.cloud-five{--top: 36%;--width: 35%;--height: 5%;--duration: 85s;--delay: -15s;--shape: polygon(0 55%, 18% 55%, 18% 20%, 42% 20%, 42% 0, 59% 0, 59% 38%, 80% 38%, 80% 65%, 100% 65%, 100% 100%, 0 100%)}.tower-fog{position:absolute;z-index:4;inset:auto 0 0;height:20%;pointer-events:none;background:linear-gradient(0deg,#a2a0bb85,#8d91b43d 45%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%,#000 76%,transparent);mask-image:linear-gradient(90deg,transparent,#000 24%,#000 76%,transparent)}.tower-fog:before{content:"";position:absolute;inset:0 -30%;background:radial-gradient(ellipse at 30% 85%,#c1bdd15c,transparent 55%),radial-gradient(ellipse at 75% 100%,#a2aec766,transparent 60%);animation:fog-drift 18s ease-in-out infinite alternate}@keyframes cloud-drift{0%{transform:translate(-100%)}to{transform:translate(100vw)}}@keyframes fog-drift{0%{transform:translate(-8%);opacity:.55}to{transform:translate(8%);opacity:.9}}@media(prefers-reduced-motion:reduce){.cloud{animation-duration:calc(var(--duration, 65s) * 2)}.tower-fog:before{animation:none}}.menu{position:relative;z-index:10;isolation:isolate;grid-column:2;justify-self:center;display:flex;flex-direction:column;gap:clamp(28px,6dvh,54px);width:min(64%,310px)}.menu button{position:relative;min-height:56px;font:600 clamp(20px,3vw,32px) Georgia,serif;color:#eedcc0;background:linear-gradient(#624b46,#42323a);border:2px solid #a28769;border-radius:2px;box-shadow:inset 0 0 0 4px #29212c66,0 8px #0c10203d;padding:clamp(10px,2dvh,20px) 12px;text-shadow:0 2px #241d2a}.menu:before,.menu:after{content:"";position:absolute;bottom:0;z-index:-1;width:5px;height:100dvh;pointer-events:none;background:repeating-linear-gradient(0deg,#8a7b77 0 4px,#3c3742 4px 7px);box-shadow:1px 0 #171c2c}.menu:before{left:15%}.menu:after{right:15%}.menu button:hover{background:linear-gradient(#775e50,#544049);border-color:#dbc29b}.menu button:active{translate:0 2px}@media(orientation:portrait){.tower-scene{right:38%}.tower{left:45%;width:180%;max-width:none}.menu{width:85%;margin-right:8%}.menu button{font-size:19px;padding-inline:6px}}.room{position:fixed;inset:0;overflow:auto;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));isolation:isolate;background:#191b2b}.room-art{position:fixed;z-index:-1;inset:0;overflow:hidden;pointer-events:none}.room-stage{position:absolute;inset:0;background:url(/assets/%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D0%B9%20%D0%B7%D0%B0%D0%BB%20%D0%BF%D0%BE%D0%B4%D0%B7%D0%B5%D0%BC%D0%B5%D0%BB%D1%8C%D1%8F%20%D1%81%20%D1%84%D0%B0%D0%BA%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8-D0q0H8-1.png) center / cover no-repeat}.screen{position:relative;width:min(620px,100%);padding:20px 28px;background:#141624df;border:1px solid #87708c55;border-radius:8px;box-shadow:0 12px 48px #080b174d}.room-preview-controls{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left))}.room-preview-controls .back{padding:10px 16px;background:#141624a6;border:1px solid #87708c40}.tower-hint{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 22px;color:#f0d292;border:1px solid #c6a56d;background:linear-gradient(#41394a,#242333);box-shadow:0 0 16px #f0d29222,inset 0 0 12px #f0d2920d}.tower-hint svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tower-introduction{bottom:18%}.screen.tower-game-panel{width:min(1440px,100%);max-width:100%;min-width:0;height:min(680px,100%);padding:16px 24px;container-type:inline-size}.tower-floor-label{margin:0;text-align:center;color:#f0d292}.tower-expression{margin:12px 0;text-align:center;font-size:clamp(24px,4vw,44px)}.tower-lives{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;gap:4px;font-size:clamp(21px,3vw,32px);color:#efa89c;text-shadow:0 0 12px #efa89c55}.tower-lives .lost{color:#716570;opacity:.35;text-shadow:none}.tower-line-area{position:absolute;inset:28% 5% 88px 3%}.tower-line-area .tower-number-line{position:relative;left:auto;right:auto;top:auto;width:100%;min-width:0;margin:72px 0 0}.tower-number-line .number-ticks{grid-template-columns:repeat(11,1fr)}.tower-number-line .number-answer{width:9.0909%;color:#e1e8df}.tower-number-line .number-answer:before{width:clamp(5px,1.2cqw,12px);height:clamp(5px,1.2cqw,12px);box-shadow:0 0 7px #e1e8df55}.tower-number-line .number-answer.incorrect{color:#efa89c}.tower-number-line .number-answer.correct{color:#b9efca}.tower-number-line .number-tick{font-size:clamp(12px,3.5cqw,28px);line-height:1.3;white-space:nowrap}.tower-number-line figcaption{font-size:clamp(12px,1.5vw,18px);margin-top:10px}.tower-feedback{position:absolute;bottom:58px;left:5%;right:5%;text-align:center;font-size:clamp(12px,1.5vw,18px);margin:4px 0}.tower-actions{position:absolute;bottom:8px;left:5%;right:5%;display:flex;justify-content:center;gap:12px}.tower-actions .tower-hint{position:static;transform:none;font-size:clamp(12px,1.5vw,18px)}.tower-next{background:#31463d;border-color:#b9efca88;font-size:clamp(12px,1.5vw,18px)}.tower-answer-options{position:absolute;top:32%;left:10%;right:10%;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,2vw,24px)}.tower-answer-options:empty{display:none}.tower-answer-option{min-width:0;padding:12px 4px;font-size:clamp(22px,4vw,38px);border-color:#a4bcb2;background:#18252baa}.tower-answer-option.correct:disabled{opacity:1;color:#b9efca;border-color:#b9efca}.tower-answer-option.incorrect{color:#efa89c}.tower-answer-option.hint-candidate{color:#f0d292;border:2px solid #f0d292;box-shadow:0 0 16px #f0d29266}.tower-number-line .number-answer.hint-candidate{color:#f0d292}.tower-number-line .number-answer.hint-candidate:before{box-shadow:0 0 8px #f0d292,0 0 18px #f0d292aa}.tower-game-panel>.back{position:absolute;top:10px;left:24px;height:44px;min-height:44px;padding:8px 0}@media(orientation:portrait){.tower-game-panel>.back{left:12px}}.approximate-hint{position:absolute;top:60%;left:8%;right:8%;margin:0;text-align:center;color:#f0d292}.approximate-track{position:relative;height:24px;border-top:2px solid #e1e8df99}.approximate-track span{position:absolute;top:10px;transform:translate(-50%);font-size:16px}.approximate-track span:before{content:"";position:absolute;top:-16px;left:50%;transform:translate(-50%);width:10px;height:10px;border-radius:50%;background:currentColor}.approximate-zero{color:#e1e8df}.approximate-answer{color:#b9efca}.approximate-track .approximate-answer:before{width:30px;height:12px;filter:blur(4px)}.approximate-hint figcaption{margin-top:12px;font-size:clamp(10px,1.3vw,15px)}@media(orientation:portrait){.screen.tower-game-panel{padding:14px 12px}.tower-game-panel .tower-lives{top:65px;right:12px;flex-direction:row;font-size:22px}.tower-game-panel .tower-floor-label{margin-top:18px}.tower-game-panel .tower-expression{margin-top:45px;font-size:30px}.tower-line-area{top:38%;bottom:160px}.tower-actions{flex-wrap:wrap;gap:6px}.tower-actions button{padding:10px 12px}.tower-game-panel .tower-feedback{bottom:116px}}.first-visit{position:fixed;inset:15% 6% 4%;display:flex;align-items:flex-end;justify-content:center;gap:3vw;pointer-events:none}.guide-character{width:35%;flex:0 0 35%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 12px 22px #080b1780)}.guide-dialog{width:min(58%,640px);flex:0 0 min(58%,640px);min-width:0;max-height:100%;overflow:auto;scrollbar-gutter:stable;pointer-events:auto;padding:clamp(16px,2.5vw,30px);margin-bottom:4%;border:1px solid #ab8c6e;border-radius:8px;background:#1b1d30f2;box-shadow:0 12px 50px #080b1780}.guide-name{margin:0 0 12px;color:#e3c49a;font:600 clamp(18px,2.3vw,28px) Georgia,serif}.guide-message{display:grid;min-height:5em;margin:0 0 18px;font-size:clamp(14px,1.7vw,20px);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.guide-message:before{content:attr(data-full-text);visibility:hidden;grid-area:1 / 1}.guide-typed{grid-area:1 / 1;min-width:0}.guide-typed.typing:after{content:"▏";display:inline-block;width:0;color:#d9bb93}.guide-actions[hidden]{display:flex!important;visibility:hidden;pointer-events:none}.guide-actions{display:flex;flex-wrap:wrap;gap:10px}.guide-actions button{font-size:clamp(12px,1.3vw,16px);padding:10px 14px}#start-tutorial{background:#735747;border-color:#bb9c72}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(orientation:portrait){.first-visit{inset:16% 5% 4%;flex-direction:column;align-items:center;gap:10px}.guide-character{width:60%;height:40%;flex:0 0 40%}.guide-dialog{width:100%;flex:0 1 auto;max-height:58%;margin:0}}.classroom{position:fixed;inset:0;display:grid;place-items:center;overflow:auto;background:#141827}.classroom-stage{position:relative;width:min(100vw,218.75dvh);height:min(100dvh,45.7143vw);background:url(/assets/%D0%A4%D1%8D%D0%BD%D1%82%D0%B5%D0%B7%D0%B8%D0%B9%D0%BD%D0%B0%D1%8F%20%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BD%D0%B0%D1%8F%20%D0%B4%D0%BE%D1%81%D0%BA%D0%B0%20%D1%81%20%D1%84%D0%B0%D0%BA%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8-39XCigFv.png) center / 100% 100% no-repeat}.board-content{position:absolute;inset:13% 17% 20%;display:flex;flex-direction:column;justify-content:center;color:#e1e8df;text-align:center}.board-content small{font-size:clamp(9px,1.2vw,14px);letter-spacing:2px;color:#a8c3b8}.board-content h1{font-family:Georgia,serif;font-size:clamp(19px,3vw,36px);margin:10px 0}.board-content p{margin:0 auto;max-width:620px;font-size:clamp(12px,1.6vw,19px);line-height:1.5}.board-example{font:clamp(23px,4vw,48px) Georgia,serif;margin:16px 0;color:#ede4ba}.board-navigation{display:flex;justify-content:center;gap:18px}.board-navigation button{border-color:#a4bcb26b;color:#e1e8df;background:#18252b66;font-size:clamp(12px,1.4vw,16px)}.tutorial-character{position:absolute;bottom:7%;left:7%;height:72%;width:22%;object-fit:contain;object-position:bottom;pointer-events:none}.tutorial-speech{position:absolute;left:30%;right:23%;top:25%;color:#e1e8df}.tutorial-speech .guide-message{min-height:clamp(62.4px,8.16vw,96px);margin-bottom:8px;font-size:clamp(16.25px,2.125vw,25px)}.tutorial-speech .guide-actions{justify-content:flex-end}.number-line-note{display:block;opacity:.55;font-size:.85em}.tutorial-speech button{background:#18252b99;border-color:#a4bcb26b}.number-line{position:absolute;left:28%;right:20%;top:58%;margin:0;color:#e1e8df;text-align:center}.number-ticks{position:relative;display:grid;grid-template-columns:repeat(11,1fr);padding-top:20px}.number-ticks:before{content:"";position:absolute;left:0;right:-3%;top:10px;height:2px;background:#d4e0d4}.number-ticks:after{content:"";position:absolute;right:-3%;top:6px;width:8px;height:8px;border-top:2px solid #d4e0d4;border-right:2px solid #d4e0d4;rotate:45deg}.number-tick{position:relative;min-width:0;font-size:clamp(12px,1.6vw,20px)}.number-tick:before{content:"";position:absolute;left:50%;top:-15px;height:12px;width:2px;background:currentColor}.number-tick.zero{color:#f0d292;font-weight:700}.number-line figcaption{margin-top:18px;font:clamp(16px,2vw,26px) Georgia,serif}.number-line.show-directions:before,.number-line.show-directions:after{position:absolute;top:-55px;font:bold clamp(34px,4.2vw,50px) Georgia,serif;color:#f0d292}.number-line.show-directions:before{content:"−";left:-5%}.number-line.show-directions:after{content:"+";right:-8%}.subtraction-steps{position:absolute;left:0;top:-70px;width:100%;height:80px;overflow:visible;pointer-events:none;fill:none;stroke:#f0d292;stroke-width:2}.subtraction-steps path{vector-effect:non-scaling-stroke}.subtraction-steps text{fill:#f0d292;stroke:none;font:28px system-ui,sans-serif;text-anchor:middle}.subtraction-step,.step-tip{opacity:0}.number-tick.example-start{color:#f0d292;font-weight:700}.number-tick.example-end{color:#b9efca;text-shadow:0 0 12px #b9efca80}.chalk-exercise{position:absolute;left:30%;right:23%;bottom:7%;text-align:center;color:#e1e8df}.number-answer{position:absolute;z-index:1;top:-14px;transform:translate(-50%);width:min(48px,9.09%);height:48px;min-height:48px;padding:0;border:0;border-radius:0;color:#f0d292;background:transparent}.number-answer:hover,.number-answer:active{background:transparent}.number-answer:before{content:"";position:absolute;left:50%;top:24px;translate:-50% -50%;width:12px;height:12px;border:2px solid currentColor;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor,0 0 18px currentColor}.number-answer:disabled{opacity:.4}.number-answer.incorrect{color:#efa89c}.number-answer.correct:disabled{opacity:1;color:#b9efca}.reveal-directions:before,.reveal-directions:after{animation:chalk-sign-appear .65s ease-out}@keyframes chalk-sign-appear{0%{opacity:0;filter:blur(5px) drop-shadow(0 0 12px #f0d292)}55%{opacity:1;filter:blur(0) drop-shadow(0 0 7px #f0d292)}to{filter:none}}@media(prefers-reduced-motion:reduce){.reveal-directions:before,.reveal-directions:after{animation:none}}.chalk-feedback{min-height:1.4em;margin:6px 0 0;font-size:clamp(11px,1.2vw,15px)}.confetti{position:absolute;inset:15% 0 0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:0;width:7px;height:7px}@keyframes step-appear{to{opacity:1}}@keyframes step-draw{to{stroke-dashoffset:0}}@keyframes answer-highlight{to{color:#b9efca;text-shadow:0 0 12px #b9efca80}}@media(orientation:portrait){.tutorial-character{left:5%;width:25%;height:55%}.tutorial-speech{left:30%;right:18%;top:24%}.number-line{left:11%;right:21%;top:58%}.number-line figcaption{margin-top:12px}}@media(max-height:450px)and (orientation:landscape){.board-content{inset:12% 17% 19%}.board-content h1{margin:5px 0;font-size:clamp(18px,2.5vw,28px)}.board-example{margin:9px 0;font-size:clamp(24px,3.3vw,36px)}.board-navigation button{padding:6px 18px}}@media(orientation:portrait){.classroom-stage{width:100%;height:max(72dvh,490px);background-size:100% 100%}.board-content{inset:15% 12% 20%}.board-content p{font-size:15px}}.back{border:0;padding-left:0;color:#aaaab4;font-size:14px}h1{font-size:24px;font-weight:500;margin:12px 0 22px}p{line-height:1.65}.progress,.note{font-size:14px;color:#a5a5b0}.expression{font-size:clamp(28px,5vw,44px);text-align:center;margin:22px 0;font-variant-numeric:tabular-nums}.answers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.answers button{font-size:24px}#feedback{min-height:24px;text-align:center;color:#bcbcc7;font-size:14px}.lessons{font-size:15px}.lessons b{font-weight:500}.lessons span{display:inline-block;margin-top:7px;color:#aaaaba}.primary{margin-top:8px}.setting{display:flex;align-items:center;justify-content:space-between;gap:20px}select{min-height:48px;padding:10px;background:#222228;border:1px solid #3c3c43;border-radius:6px;max-width:70%}@media(max-height:450px)and (orientation:landscape){#app{padding-top:10px;padding-bottom:10px}.room{padding-top:8px;padding-bottom:8px}.screen{padding:10px 22px}h1{margin:4px 0 10px;font-size:21px}.progress{margin:0}.expression{margin:12px 0}.lessons p{margin:10px 0}}
