@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@500;600;700;800&display=swap");:root{--ink:#172847;--muted:#496387;--paper:#eaf3ff;--white:#fff;--navy:#17294c;--blue:#3679d9;--blue-deep:#2459aa;--amber:#ffb13f;--amber-deep:#d78222;--lime:#84d84e;--line:#cbdcf1;--pale-blue:#f4f8ff;--danger:#a63334;--danger-bg:#fff0ed}*{box-sizing:border-box}html{min-height:100%;scrollbar-color:#829fc3 var(--paper);scrollbar-width:thin}body,html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:DM Sans,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}::selection{color:#15264a;background:#ffe09e}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #3679d9;outline-offset:3px}input{caret-color:var(--amber-deep)}.shell{width:min(100% - 36px,720px);margin:0 auto;padding:24px 0 28px}.topbar{height:54px;justify-content:space-between;margin-bottom:18px}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;color:var(--ink);text-decoration:none;font:800 20px Manrope,sans-serif;letter-spacing:-.6px}.brand img{width:42px;height:42px;border:2px solid #fff;border-radius:14px;object-fit:cover;box-shadow:0 5px 13px #18366025}.total-score{display:flex;align-items:center;gap:8px;padding:5px 11px 5px 12px;border:1px solid #c4d8ef;border-radius:99px;background:#fff}.total-score span{font-size:9px;font-weight:800;letter-spacing:1px;color:#3b567d}.total-score strong{display:grid;place-items:center;min-width:29px;height:29px;padding:0 7px;border-radius:50%;background:var(--amber);color:#1a2b4b;font:800 14px Manrope,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.game-panel{min-height:424px;padding:17px 30px 30px;border:1px solid #cbdcf1;border-radius:27px;background:var(--white);box-shadow:0 10px 28px #24467512}.game-panel,.runner-scene{position:relative;overflow:hidden}.runner-scene{height:190px;margin:0 -30px 23px;border-radius:20px;background:#8fcafa;isolation:isolate}.town-art{position:absolute;inset:0;width:100%;height:100%;display:block}.runner{position:absolute;z-index:2;left:12%;bottom:18px;width:68px;height:68px;border:2px solid #fff;border-radius:20px;object-fit:cover;box-shadow:0 6px 14px #11264b55;transition:left .62s cubic-bezier(.22,.8,.25,1)}.is-running .runner{left:70%;animation:runner-hop .72s cubic-bezier(.16,.72,.18,1) both}.finish-flag{position:absolute;z-index:2;right:8%;bottom:34px;display:grid;place-items:center;width:46px;height:46px;border:2px solid #fff;border-radius:15px;background:var(--amber);color:#17294c;box-shadow:0 5px 12px #12294a42}.finish-flag svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}@keyframes runner-hop{0%{transform:translateY(0) rotate(0)}32%{transform:translateY(-33px) rotate(-10deg)}58%{transform:translateY(-29px) rotate(7deg)}to{transform:translateY(0) rotate(0)}}.intro-copy,.result-copy{text-align:center;max-width:440px;margin:0 auto}h1{margin:0;font:800 36px/1.12 Manrope,sans-serif;letter-spacing:-1.1px}.intro-copy p{margin:9px 0 22px;color:var(--muted);font-size:15px;line-height:1.5}.primary-button{min-height:50px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:13px;border:1px solid #e29a35;border-radius:15px;background:var(--amber);color:#1a2b4b;font-weight:800;font-size:14px;box-shadow:0 4px 0 var(--amber-deep),0 8px 16px #ac6f2030;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.primary-button:hover{background:#ffc262;transform:translateY(-1px);box-shadow:0 5px 0 var(--amber-deep),0 10px 20px #ac6f2038}.primary-button:active{transform:translateY(2px);box-shadow:0 2px 0 var(--amber-deep)}.primary-button:disabled{border-color:#b9c7da;background:#dbe4ef;color:#526783;box-shadow:none;cursor:not-allowed;transform:none}.button-arrow{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.question{max-width:390px;margin:0 auto;text-align:center}.question-title{margin:0 0 8px;color:var(--blue-deep);font:800 16px Manrope,sans-serif}.question h1{margin-bottom:19px;font-size:50px;letter-spacing:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.question h1 span{color:var(--amber-deep)}.question label{display:block;margin:0 0 7px;text-align:left;color:#334f78;font-size:12px;font-weight:800}.answer-row{display:flex;gap:10px}.answer-row input{min-width:0;width:100%;height:52px;padding:0 15px;border:1.5px solid #a9c5e7;border-radius:14px;color:var(--ink);font:800 20px Manrope,sans-serif;background:var(--pale-blue)}.answer-row input:focus-visible{border-color:var(--blue);outline-color:#3679d9}.answer-row .primary-button{flex-shrink:0;min-width:116px}.error-message{margin:12px 0 0;padding:9px 11px;border-radius:10px;background:var(--danger-bg);color:var(--danger);font-size:13px;line-height:1.45;text-align:left}.result-copy{padding-top:3px}.result-copy h1{font-size:31px;letter-spacing:-.7px}.result-mark{width:48px;height:48px;margin:0 auto 10px;display:grid;place-items:center;border:2px solid #fff;border-radius:17px;background:#dcf5c8;color:#287424;box-shadow:0 4px 11px #315c2522}.result-mark svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.result-mark.try-again{background:#fff0d8;color:#85521b}.session-score{margin:10px 0 17px;color:#466184;font-size:14px}.session-score strong{color:var(--ink)}.next-button{border-color:#5aab33;background:var(--lime);color:#17341f;box-shadow:0 4px 0 #4b9a2b,0 8px 16px #4a9d3430}.next-button:hover{background:#9ce568;box-shadow:0 5px 0 #4b9a2b,0 10px 20px #4a9d3438}.next-button:active{box-shadow:0 2px 0 #4b9a2b}.next-actions{display:flex;flex-direction:column;align-items:center;gap:10px}.ai-button{min-height:44px;padding:0 16px;border:1.5px solid #9bbbe1;border-radius:13px;background:#f1f7ff;color:#244b7c;font-size:13px;font-weight:800;cursor:pointer;transition:background .16s ease,transform .16s ease}.ai-button:hover{background:#e4f0ff;transform:translateY(-1px)}.ai-button:focus-visible,.text-button:focus-visible{outline:3px solid #3679d9;outline-offset:3px}.ai-button:disabled{background:#dbe4ef;color:#526783;cursor:wait;transform:none}.ai-disclosure{max-width:350px;margin:10px auto 0;color:#496387;font-size:11px;line-height:1.45}.challenge-editor{text-align:left}.challenge-editor h1{text-align:center;margin-bottom:15px}.challenge-editor label{display:block;margin:9px 0 5px;color:#334f78;font-size:12px;font-weight:800}.challenge-editor>input,.challenge-numbers input{width:100%;min-width:0;height:45px;padding:0 12px;border:1.5px solid #a9c5e7;border-radius:12px;background:var(--pale-blue);color:var(--ink);font:700 16px Manrope,sans-serif}.challenge-preview{margin:13px 0;text-align:center;color:var(--ink);font:800 25px Manrope,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.challenge-numbers{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-bottom:14px}.challenge-editor .primary-button{width:100%}.text-button{display:block;margin:10px auto 0;border:0;background:transparent;color:#315e91;font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.score-row{position:relative;display:flex;align-items:center;gap:23px;margin:14px 0;padding:17px 21px;border:1px solid var(--line);border-radius:19px;background:#fff;box-shadow:0 5px 16px #2446750a}.score-row>div:first-child,.score-row>div:nth-child(3){display:flex;flex-direction:column;gap:2px}.score-number{font:800 25px Manrope,sans-serif;letter-spacing:-.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score-label{font-size:11px;font-weight:700;color:#496387}.score-divider{width:1px;height:37px;background:#cbdcf1}.score-badge{margin-left:auto;padding:8px 12px;border:1px solid #b7df9d;border-radius:13px;background:#e8f8dc;color:#285d25;text-align:center;font-size:11px;line-height:1.25;font-weight:800;transform:rotate(2deg)}.recent-records{padding:17px 20px 14px;border:1px solid var(--line);border-radius:19px;background:#fff}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.section-heading h2{margin:0;color:var(--ink);font:800 16px Manrope,sans-serif;letter-spacing:-.2px}.section-heading span{font-size:11px;color:#496387;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.empty-state{margin:0;padding:13px 0 14px;color:#456183;font-size:13px;line-height:1.5}.recent-records ul{margin:0;padding:0;list-style:none}.recent-records li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid #e4edf8;color:#273d60;font-size:13px}.recent-records li strong{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px}.recent-records li strong svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.recent-records li .record-right{color:#287424}.recent-records li .record-missed{color:#85521b}.notice{margin:12px 0 0;padding-top:10px;border-top:1px solid #e4edf8;line-height:1.5}.notice,footer{color:#496387;font-size:11px}footer{padding:14px 4px 0;text-align:center}.load-error{width:min(100% - 36px,480px);margin:16vh auto;padding:30px;border:1px solid var(--line);border-radius:23px;background:#fff;text-align:center;color:#496387;line-height:1.6}.load-error img{width:72px;height:72px;border-radius:20px}.load-error h1{margin:12px 0;color:var(--ink);font-size:29px}.load-error p{margin:0}@media(max-width:520px){.shell{width:calc(100% - 28px);padding-top:14px}.topbar{margin-bottom:13px}.brand{font-size:18px}.brand img{width:38px;height:38px;border-radius:12px}.game-panel{min-height:416px;padding:13px 19px 24px;border-radius:23px}.runner-scene{height:164px;margin:0 -19px 19px;border-radius:18px}.runner{left:10%;bottom:15px;width:58px;height:58px;border-radius:18px}.is-running .runner{left:57%}.finish-flag{right:6%;bottom:26px;width:40px;height:40px;border-radius:13px}.finish-flag svg{width:20px;height:20px}.intro-copy h1{font-size:31px}.intro-copy p{margin:8px 0 18px;font-size:14px}.question-title{font-size:15px}.question h1{margin-bottom:17px;font-size:46px}.answer-row{gap:8px}.answer-row input{height:50px;padding:0 12px}.answer-row .primary-button{min-width:102px;padding:0 14px}.result-copy h1{font-size:27px}.score-row{gap:16px;margin:12px 0;padding:15px 16px}.score-badge{padding:7px 10px}.recent-records{padding:15px 16px 13px}.recent-records li{gap:8px;font-size:12px}.recent-records li strong{font-size:10px}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.landing{width:min(100% - 40px,1040px);min-height:100vh;margin:0 auto;padding:24px 0 30px}.landing-header{height:54px;margin-bottom:30px}.landing-story{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;grid-gap:42px;gap:42px;min-height:400px;padding:30px;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:0 10px 28px #24467512}.landing-copy{max-width:440px}.landing-copy h1{max-width:10ch;font-size:clamp(38px,5vw,58px);letter-spacing:-1.8px;line-height:1.04}.landing-copy p{max-width:42ch;margin:18px 0 24px;color:var(--muted);font-size:16px;line-height:1.65}.landing-cta{text-decoration:none}.landing-preview{position:relative;overflow:hidden;padding:14px;border:1px solid #cbdcf1;border-radius:23px;background:#f4f8ff;box-shadow:0 7px 20px #24467512}.landing-preview .runner-scene{height:230px;margin:0;border-radius:16px}.landing-preview .runner{left:23%;bottom:23px;width:64px;height:64px}.preview-problem{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:14px 16px;border:1px solid #cbdcf1;border-radius:14px;background:white}.preview-problem span{color:#496387;font-size:13px;font-weight:700}.preview-problem strong{color:#172847;font:800 23px Manrope,sans-serif}.landing-steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px;margin:27px 6px 0;padding:0 18px}.landing-steps p{margin:0;color:#496387;font-size:14px;line-height:1.6}.landing-steps strong{display:block;margin-bottom:4px;color:#172847;font:800 17px Manrope,sans-serif}.landing-footer{margin-top:24px;color:#496387;font-size:12px;text-align:center}.recent-records li time{display:block;margin-top:3px;color:#496387;font-size:10px;font-weight:500}@media(max-width:700px){.landing{width:calc(100% - 28px);padding-top:14px}.landing-header{margin-bottom:16px}.landing-story{grid-template-columns:1fr;gap:23px;min-height:0;padding:22px 18px;border-radius:23px}.landing-copy h1{max-width:11ch;font-size:clamp(37px,11vw,48px)}.landing-copy p{margin:13px 0 19px;font-size:15px;line-height:1.55}.landing-preview{padding:10px;border-radius:19px}.landing-preview .runner-scene{height:164px}.landing-preview .runner{left:14%;bottom:15px;width:58px;height:58px}.landing-steps{grid-template-columns:1fr;gap:13px;margin:19px 0 0;padding:0 6px}.landing-steps p{font-size:13px}.landing-steps strong{display:inline;margin-right:5px;font-size:14px}.landing-footer{margin-top:17px;font-size:11px}}