:root{color-scheme:light;font-family:ui-rounded,Apple SD Gothic Neo,Malgun Gothic,Segoe UI,sans-serif;--paper: #fff8ea;--canvas: #f7f1e3;--ink: #23303f;--muted: #6d7380;--line: #23303f;--teal: #1d8a99;--teal-dark: #126a76;--coral: #ea5b45;--yellow: #f0b429;--green: #38a169;--green-light: #d9f99d;--red: #d64045;--red-light: #ffe1df;--shadow: 0 20px 48px rgba(35, 48, 63, .16);--app-height: 100vh;--app-vh: 1vh}@supports (height: 100svh){:root{--app-height: 100svh;--app-vh: 1svh}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:linear-gradient(90deg,rgba(35,48,63,.06) 1px,transparent 1px),linear-gradient(rgba(35,48,63,.06) 1px,transparent 1px),var(--canvas);background-size:34px 34px;color:var(--ink);-webkit-tap-highlight-color:transparent;overflow-x:hidden}button{border:0;color:inherit;font:inherit}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) 176px;gap:clamp(16px,2.4vw,28px);min-height:var(--app-height);padding:max(clamp(16px,3vw,34px),env(safe-area-inset-top)) max(clamp(16px,3vw,34px),env(safe-area-inset-right)) max(clamp(16px,3vw,34px),env(safe-area-inset-bottom)) max(clamp(16px,3vw,34px),env(safe-area-inset-left))}.practice-stage{display:grid;grid-template-rows:auto minmax(300px,1fr) auto;gap:clamp(14px,2.3vw,24px);min-height:calc(var(--app-height) - clamp(32px,6vw,68px))}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow,.prompt,.feedback,.score-item span{margin:0;font-weight:800;letter-spacing:0}.eyebrow{color:var(--coral);font-size:clamp(.9rem,1.8vw,1.05rem)}h1{margin:4px 0 0;font-size:clamp(1.5rem,3vw,2.6rem);line-height:1.05}.ghost-button,.sound-toggle,.answer-button{cursor:pointer;touch-action:manipulation;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease,color .14s ease}.top-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.ghost-button{min-width:96px;min-height:52px;border:2px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:5px 5px 0 var(--ink);font-weight:900}.ghost-button:disabled{cursor:default;opacity:.48;transform:none}.history-button[aria-current=page]{background:var(--teal);color:#fff}.sound-toggle{min-width:84px;min-height:52px;border:2px solid var(--line);border-radius:8px;background:var(--yellow);box-shadow:5px 5px 0 var(--ink);font-size:.95rem;font-weight:900}.sound-toggle.is-off{background:#fff;color:var(--muted)}.ghost-button:active,.sound-toggle:active,.answer-button:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.ghost-button:disabled:active{box-shadow:5px 5px 0 var(--ink);transform:none}.problem-panel{position:relative;isolation:isolate;display:grid;place-items:center;align-content:center;min-height:300px;overflow:hidden;border:4px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:var(--shadow),10px 10px 0 var(--ink);transform-origin:center}.problem-panel:before{position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:2px dashed rgba(35,48,63,.24);border-radius:8px;content:"";pointer-events:none;z-index:2}.problem-panel:after{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;z-index:0;content:"";opacity:0;pointer-events:none;transform:scale(.82) rotate(0)}.problem-panel.correct{border-color:var(--green)}.problem-panel.correct.fx-0{animation:correct-panel .5s cubic-bezier(.18,.89,.32,1.2)}.problem-panel.correct.fx-0:after{background:conic-gradient(from 12deg,transparent 0deg 18deg,rgba(56,161,105,.24) 18deg 34deg,transparent 34deg 60deg,rgba(240,180,41,.28) 60deg 72deg,transparent 72deg 110deg,rgba(29,138,153,.22) 110deg 126deg,transparent 126deg 360deg);animation:burst-spin .52s ease-out}.problem-panel.correct.fx-1{animation:correct-stamp-panel .52s cubic-bezier(.18,.89,.32,1.18)}.problem-panel.correct.fx-1:after{top:-12%;right:-12%;bottom:-12%;left:-12%;background:radial-gradient(circle at 50% 50%,rgba(56,161,105,.22) 0 9%,transparent 10%),radial-gradient(circle at 38% 36%,rgba(240,180,41,.2) 0 7%,transparent 8%),radial-gradient(circle at 62% 64%,rgba(29,138,153,.18) 0 6%,transparent 7%);animation:stamp-glow .52s ease-out}.problem-panel.correct.fx-2{animation:correct-ribbon-panel .52s ease-out}.problem-panel.correct.fx-2:after{top:-8%;right:-45%;bottom:-8%;left:-45%;background:repeating-linear-gradient(102deg,transparent 0 26px,rgba(56,161,105,.17) 26px 46px,rgba(240,180,41,.2) 46px 60px,transparent 60px 86px);animation:ribbon-sweep .54s ease-out}.problem-panel.wrong{border-color:var(--red)}.problem-panel.wrong.fx-0{background:repeating-linear-gradient(-9deg,transparent 0 18px,rgba(214,64,69,.07) 18px 28px),var(--paper);animation:wrong-panel .42s cubic-bezier(.36,.07,.19,.97)}.problem-panel.wrong.fx-1{background:linear-gradient(135deg,var(--red-light),transparent 46%),var(--paper);animation:wrong-tilt-panel .44s cubic-bezier(.36,.07,.19,.97)}.problem-panel.wrong.fx-2{background:radial-gradient(circle at 50% 50%,rgba(214,64,69,.16),transparent 42%),var(--paper);animation:wrong-sink-panel .44s ease-out}.problem-panel.wrong.fx-2:after{background:repeating-radial-gradient(circle at 50% 50%,transparent 0 34px,rgba(214,64,69,.16) 35px 42px);animation:error-pulse .5s ease-out}.start-panel,.summary-panel,.history-panel{padding:clamp(20px,4vw,40px)}.start-panel{align-content:center}.summary-panel,.history-panel{align-content:stretch;place-items:stretch}.start-content,.summary-content,.history-content{position:relative;z-index:3}.start-content{display:grid;justify-items:center;gap:clamp(14px,2.6vw,24px);width:min(100%,720px);text-align:center}.start-content h2,.summary-head h2{margin:0;font-size:clamp(2.4rem,8vw,5.6rem);line-height:.98}.difficulty-current{margin:-8px 0 0;border:3px solid var(--line);border-radius:999px;background:var(--yellow);color:var(--ink);padding:6px 14px;font-size:clamp(1rem,2.4vw,1.35rem);font-weight:950;line-height:1}.start-button{min-width:clamp(150px,22vw,220px);min-height:clamp(66px,calc(var(--app-vh) * 9),86px);border:4px solid var(--line);border-radius:8px;background:var(--green);box-shadow:8px 8px 0 var(--ink);color:#fff;cursor:pointer;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:1000;touch-action:manipulation;transition:transform .14s ease,box-shadow .14s ease}.start-button.compact{justify-self:start;min-width:136px;min-height:56px;margin-top:4px;border-width:3px;box-shadow:5px 5px 0 var(--ink);font-size:1.15rem}.start-button:active{box-shadow:2px 2px 0 var(--ink);transform:translate(5px,5px)}.operation-picker,.difficulty-picker{display:grid;gap:10px}.operation-picker{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,420px)}.difficulty-picker{grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,620px)}.operation-picker button,.difficulty-picker button{display:grid;gap:4px;min-height:76px;border:3px solid var(--line);border-radius:8px;background:#fff;box-shadow:5px 5px 0 var(--ink);cursor:pointer;padding:10px;text-align:left;touch-action:manipulation;transition:background-color .14s ease,box-shadow .14s ease,transform .14s ease}.operation-picker button.is-selected,.difficulty-picker button.is-selected{background:var(--yellow)}.operation-picker button:active,.difficulty-picker button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(4px,4px)}.operation-picker span,.difficulty-picker span{color:var(--muted);font-size:.9rem;font-weight:900}.operation-picker strong{font-size:clamp(1.45rem,3.6vw,2.15rem);line-height:1}.difficulty-picker strong{font-size:clamp(1rem,2.2vw,1.35rem);line-height:1.05}.summary-content,.history-content{display:grid;gap:clamp(12px,calc(var(--app-vh) * 2),18px);max-height:100%;overflow:auto;padding:4px}.summary-head{display:grid;gap:4px}.summary-head h2{font-size:clamp(2rem,5vw,4.2rem)}.summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.summary-metrics div{display:grid;gap:4px;border:3px solid var(--line);border-radius:8px;background:#fff;box-shadow:4px 4px 0 var(--ink);padding:12px}.summary-metrics span,.summary-section h3{color:var(--muted);font-size:.88rem;font-weight:900}.summary-metrics strong{font-size:clamp(1.5rem,4vw,2.7rem);line-height:1}.week-navigator{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:stretch}.week-navigator button{min-width:96px;min-height:54px;border:3px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:4px 4px 0 var(--ink);cursor:pointer;font-size:.95rem;font-weight:950;touch-action:manipulation}.week-navigator button:disabled{cursor:default;opacity:.45}.week-navigator div{display:grid;gap:3px;align-content:center;border:3px solid var(--line);border-radius:8px;background:var(--yellow);box-shadow:4px 4px 0 var(--ink);padding:8px 12px;text-align:center}.week-navigator span{color:var(--ink);font-size:.78rem;font-weight:950}.week-navigator strong{font-size:clamp(.95rem,2.2vw,1.2rem);line-height:1.1}.history-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.history-metrics div,.missed-problem-list div,.recent-wrong-list div{display:grid;gap:4px;border:3px solid var(--line);border-radius:8px;background:#fff;box-shadow:4px 4px 0 var(--ink);padding:12px}.history-metrics span,.missed-problem-list span,.recent-wrong-list span{color:var(--muted);font-size:.84rem;font-weight:900}.history-metrics strong{font-size:clamp(1.35rem,3.2vw,2.2rem);line-height:1}.missed-problem-list,.recent-wrong-list{display:grid;gap:8px}.missed-problem-list{grid-template-columns:repeat(2,minmax(0,1fr))}.missed-problem-list strong,.recent-wrong-list strong{font-size:clamp(1.1rem,2.4vw,1.55rem);line-height:1}.missed-problem-list em,.recent-wrong-list em{color:var(--ink);font-size:.9rem;font-style:normal;font-weight:850;line-height:1.32}.summary-section{display:grid;gap:6px}.summary-section h3{margin:0}.summary-section ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.summary-section li{border-left:6px solid var(--teal);background:#ffffffb8;padding:8px 10px;font-size:clamp(.95rem,2vw,1.08rem);font-weight:800;line-height:1.3}.summary-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.share-button{min-width:142px;min-height:56px;border:3px solid var(--line);border-radius:8px;background:var(--teal);box-shadow:5px 5px 0 var(--ink);color:#fff;cursor:pointer;font-size:1.15rem;font-weight:1000;touch-action:manipulation;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease}.share-button:disabled{cursor:default;opacity:.72}.share-button:active:not(:disabled){box-shadow:2px 2px 0 var(--ink);transform:translate(3px,3px)}.share-status{margin:-4px 0 0;color:var(--teal-dark);font-size:.92rem;font-weight:900}.share-status.is-failed{color:var(--red)}.share-fallback{width:100%;min-height:96px;border:3px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:.84rem;font-weight:800;line-height:1.35;padding:10px;resize:vertical}.question-mark{position:absolute;top:18px;right:26px;z-index:1;color:#1d8a9929;font-size:clamp(4rem,11vw,9rem);font-weight:1000;line-height:1}.success-burst{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.success-burst span{position:absolute;left:50%;top:50%;width:clamp(12px,2.6vw,24px);aspect-ratio:1;border:3px solid var(--green);border-radius:3px;opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(.35)}.success-burst span:nth-child(2n){border-color:var(--yellow)}.success-burst span:nth-child(3n){border-color:var(--teal)}.problem-panel.correct.fx-0 .success-burst span{animation:burst-chip .52s ease-out forwards}.problem-panel.correct.fx-1 .success-burst span{animation:stamp-chip .5s ease-out forwards}.problem-panel.correct.fx-2 .success-burst span{animation:ribbon-chip .54s ease-out forwards}.success-burst span:nth-child(1){--burst-x: -210px;--burst-y: -90px}.success-burst span:nth-child(2){--burst-x: -132px;--burst-y: 108px;animation-delay:45ms}.success-burst span:nth-child(3){--burst-x: -24px;--burst-y: -132px;animation-delay:80ms}.success-burst span:nth-child(4){--burst-x: 108px;--burst-y: 118px;animation-delay:35ms}.success-burst span:nth-child(5){--burst-x: 196px;--burst-y: -76px;animation-delay:70ms}.success-burst span:nth-child(6){--burst-x: 228px;--burst-y: 44px;animation-delay:.11s}.prompt{z-index:1;color:var(--muted);font-size:clamp(1rem,2vw,1.25rem)}.question{z-index:1;display:flex;align-items:center;justify-content:center;gap:clamp(16px,4vw,36px);margin-top:10px;font-size:clamp(5.4rem,17vw,12rem);font-weight:1000;line-height:.95;font-variant-numeric:tabular-nums}.difficulty-medium .question{gap:clamp(10px,2.6vw,28px);font-size:clamp(4.4rem,13vw,9rem)}.difficulty-hard .question{gap:clamp(8px,2vw,22px);font-size:clamp(3.5rem,10vw,7rem)}.problem-panel.correct.fx-0 .question{animation:answer-pop .42s cubic-bezier(.18,.89,.32,1.2)}.problem-panel.correct.fx-1 .question{animation:answer-stamp .42s cubic-bezier(.18,.89,.32,1.2)}.problem-panel.correct.fx-2 .question{animation:answer-swoop .44s ease-out}.problem-panel.wrong.fx-0 .question{animation:answer-wobble .38s ease-in-out}.problem-panel.wrong.fx-1 .question{animation:answer-slip .4s cubic-bezier(.36,.07,.19,.97)}.problem-panel.wrong.fx-2 .question{animation:answer-stutter .42s ease-out}.operator{color:var(--teal);transform:translateY(-.04em)}.feedback{z-index:1;min-height:38px;margin-top:clamp(8px,1.5vw,16px);border-radius:8px;color:var(--coral);font-size:clamp(1.4rem,4vw,2.2rem)}.problem-panel.correct .feedback{color:var(--green)}.problem-panel.correct.fx-0 .feedback{animation:feedback-pop .4s cubic-bezier(.18,.89,.32,1.2)}.problem-panel.correct.fx-1 .feedback{animation:feedback-stamp .4s cubic-bezier(.18,.89,.32,1.2)}.problem-panel.correct.fx-2 .feedback{animation:feedback-slide .4s ease-out}.problem-panel.wrong .feedback{color:var(--red)}.problem-panel.wrong.fx-0 .feedback{animation:feedback-pop .3s ease-out}.problem-panel.wrong.fx-1 .feedback{animation:feedback-skid .34s ease-out}.problem-panel.wrong.fx-2 .feedback{animation:feedback-blink .42s ease-out}.answer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.8vw,18px)}.answer-button{min-height:clamp(96px,calc(var(--app-vh) * 16),148px);border:4px solid var(--line);border-radius:8px;background:#fff;box-shadow:8px 8px 0 var(--ink);font-size:clamp(2.4rem,7vw,5.2rem);font-weight:1000;font-variant-numeric:tabular-nums}.answer-button.digits-3{font-size:clamp(2.3rem,6vw,4.6rem)}.answer-button.digits-4{font-size:clamp(1.85rem,5vw,3.8rem)}.answer-button.digits-5{font-size:clamp(1.55rem,4vw,3rem)}.answer-button:disabled{cursor:default}.answer-button.is-correct{background:var(--green);color:#fff}.answer-button.is-correct.fx-0{animation:correct-choice .46s cubic-bezier(.18,.89,.32,1.2)}.answer-button.is-correct.fx-1{animation:correct-choice-stamp .48s cubic-bezier(.18,.89,.32,1.2)}.answer-button.is-correct.fx-2{animation:correct-choice-sweep .48s ease-out}.answer-button.is-wrong{background:var(--red);color:#fff}.answer-button.is-wrong.fx-0{animation:wrong-choice .34s cubic-bezier(.36,.07,.19,.97)}.answer-button.is-wrong.fx-1{animation:wrong-choice-tilt .36s cubic-bezier(.36,.07,.19,.97)}.answer-button.is-wrong.fx-2{animation:wrong-choice-sink .38s ease-out}.answer-button.is-muted{background:#ffffff73;color:#23303f52;box-shadow:3px 3px #23303f5c}@keyframes correct-panel{0%{background:var(--paper);box-shadow:var(--shadow),10px 10px 0 var(--ink);transform:scale(1)}38%{background:linear-gradient(135deg,var(--green-light),var(--paper) 62%);box-shadow:0 0 0 10px #38a1692e,var(--shadow),10px 10px 0 var(--ink);transform:scale(1.018)}to{background:var(--paper);box-shadow:var(--shadow),10px 10px 0 var(--ink);transform:scale(1)}}@keyframes wrong-panel{0%,to{transform:translate(0) rotate(0)}16%{transform:translate(-12px) rotate(-.5deg)}34%{transform:translate(10px) rotate(.5deg)}52%{transform:translate(-7px) rotate(-.35deg)}70%{transform:translate(4px) rotate(.2deg)}}@keyframes burst-spin{0%{opacity:0;transform:scale(.72) rotate(0)}28%{opacity:1}to{opacity:0;transform:scale(1.08) rotate(42deg)}}@keyframes burst-chip{0%{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(.35)}24%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--burst-x)),calc(-50% + var(--burst-y))) rotate(210deg) scale(1)}}@keyframes answer-pop{0%{transform:scale(1)}42%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes answer-wobble{0%,to{transform:rotate(0)}28%{transform:rotate(-1.6deg)}58%{transform:rotate(1.3deg)}}@keyframes feedback-pop{0%{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes correct-choice{0%{transform:translate(0) scale(1);box-shadow:8px 8px 0 var(--ink)}44%{transform:translate(-2px,-8px) scale(1.08);box-shadow:0 0 0 8px #38a1692e,12px 16px 0 var(--ink)}to{transform:translate(0) scale(1);box-shadow:8px 8px 0 var(--ink)}}@keyframes wrong-choice{0%,to{transform:translate(0)}18%{transform:translate(-10px)}38%{transform:translate(8px)}60%{transform:translate(-5px)}}@keyframes correct-stamp-panel{0%{transform:scale(1) rotate(0);box-shadow:var(--shadow),10px 10px 0 var(--ink)}34%{transform:scale(.97) rotate(-.25deg);box-shadow:var(--shadow),6px 6px 0 var(--ink)}58%{transform:scale(1.026) rotate(.25deg);box-shadow:0 0 0 12px #38a16929,var(--shadow),12px 12px 0 var(--ink)}to{transform:scale(1) rotate(0);box-shadow:var(--shadow),10px 10px 0 var(--ink)}}@keyframes correct-ribbon-panel{0%{background:var(--paper);transform:translateY(0)}42%{background:linear-gradient(90deg,rgba(217,249,157,.55),var(--paper) 64%);transform:translateY(-4px)}to{background:var(--paper);transform:translateY(0)}}@keyframes wrong-tilt-panel{0%,to{transform:rotate(0) translateY(0)}22%{transform:rotate(-1.5deg) translateY(2px)}52%{transform:rotate(1.2deg) translateY(0)}76%{transform:rotate(-.45deg) translateY(1px)}}@keyframes wrong-sink-panel{0%{transform:translateY(0) scale(1);box-shadow:var(--shadow),10px 10px 0 var(--ink)}34%{transform:translateY(9px) scale(.99);box-shadow:var(--shadow),2px 2px 0 var(--ink)}to{transform:translateY(0) scale(1);box-shadow:var(--shadow),10px 10px 0 var(--ink)}}@keyframes stamp-glow{0%{opacity:0;transform:scale(.45) rotate(-12deg)}36%{opacity:1;transform:scale(1.04) rotate(0)}to{opacity:0;transform:scale(1.22) rotate(8deg)}}@keyframes ribbon-sweep{0%{opacity:0;transform:translate(-42%) skew(-10deg)}30%{opacity:1}to{opacity:0;transform:translate(42%) skew(-10deg)}}@keyframes error-pulse{0%{opacity:0;transform:scale(.65)}35%{opacity:1}to{opacity:0;transform:scale(1.08)}}@keyframes stamp-chip{0%{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.2)}28%{opacity:1;transform:translate(-50%,-50%) rotate(8deg) scale(1.2)}to{opacity:0;transform:translate(calc(-50% + var(--burst-x)),calc(-50% + var(--burst-y))) rotate(90deg) scale(.25)}}@keyframes ribbon-chip{0%{opacity:0;transform:translate(calc(-50% - 180px),-50%) rotate(45deg) scale(.35)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + 210px),calc(-50% + var(--burst-y))) rotate(235deg) scale(.9)}}@keyframes answer-stamp{0%{transform:scale(1) rotate(0)}34%{transform:scale(.9) rotate(-1deg)}58%{transform:scale(1.12) rotate(.8deg)}to{transform:scale(1) rotate(0)}}@keyframes answer-swoop{0%{transform:translate(-16px) scale(.98);opacity:.78}40%{transform:translate(10px) scale(1.06);opacity:1}to{transform:translate(0) scale(1)}}@keyframes answer-slip{0%,to{transform:translate(0) rotate(0)}28%{transform:translate(18px) rotate(1.7deg)}54%{transform:translate(-10px) rotate(-1deg)}}@keyframes answer-stutter{0%,to{opacity:1;transform:translateY(0)}18%{opacity:.42;transform:translateY(4px)}36%{opacity:1;transform:translateY(-3px)}58%{opacity:.62;transform:translateY(2px)}}@keyframes feedback-stamp{0%{opacity:0;transform:rotate(-4deg) scale(1.28)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes feedback-slide{0%{opacity:0;transform:translate(-26px)}to{opacity:1;transform:translate(0)}}@keyframes feedback-skid{0%{opacity:0;transform:translate(24px) rotate(2deg)}to{opacity:1;transform:translate(0) rotate(0)}}@keyframes feedback-blink{0%,42%,to{opacity:1}20%,66%{opacity:.36}}@keyframes correct-choice-stamp{0%{transform:scale(1) rotate(0);box-shadow:8px 8px 0 var(--ink)}34%{transform:scale(.92) rotate(-1.4deg);box-shadow:3px 3px 0 var(--ink)}58%{transform:scale(1.1) rotate(1deg);box-shadow:0 0 0 8px #f0b42938,11px 11px 0 var(--ink)}to{transform:scale(1) rotate(0);box-shadow:8px 8px 0 var(--ink)}}@keyframes correct-choice-sweep{0%{transform:translate(-10px);box-shadow:8px 8px 0 var(--ink)}42%{transform:translate(9px);box-shadow:0 0 0 8px #1d8a9933,12px 8px 0 var(--ink)}to{transform:translate(0);box-shadow:8px 8px 0 var(--ink)}}@keyframes wrong-choice-tilt{0%,to{transform:rotate(0) translateY(0)}28%{transform:rotate(-5deg) translateY(3px)}58%{transform:rotate(4deg) translateY(0)}}@keyframes wrong-choice-sink{0%{transform:translateY(0) scale(1);box-shadow:8px 8px 0 var(--ink)}34%{transform:translateY(8px) scale(.97);box-shadow:2px 2px 0 var(--ink)}to{transform:translateY(0) scale(1);box-shadow:8px 8px 0 var(--ink)}}.playing-layout{display:grid;grid-template-columns:minmax(238px,.82fr) minmax(0,1.18fr);gap:clamp(12px,2vw,20px);min-height:0}.playing-layout .problem-panel{min-height:300px}.reward-panel{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;min-height:300px;border:4px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow),8px 8px 0 var(--ink);padding:14px;overflow:hidden}.reward-panel:before{position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:2px dashed rgba(35,48,63,.18);border-radius:8px;content:"";pointer-events:none}.reward-meta,.reward-progress{position:relative;z-index:2}.reward-meta{display:flex;align-items:start;justify-content:space-between;gap:10px}.reward-meta h2{margin:2px 0 0;font-size:clamp(1.35rem,3vw,2.1rem);line-height:1}.reward-meta strong{display:inline-flex;align-items:baseline;gap:2px;border:3px solid var(--line);border-radius:8px;background:var(--yellow);box-shadow:3px 3px 0 var(--ink);padding:5px 8px;font-size:1.35rem;line-height:1}.reward-meta strong span{color:var(--muted);font-size:.78rem}.reward-frame{position:relative;z-index:1;width:min(100%,300px);aspect-ratio:1;justify-self:center;align-self:center;overflow:hidden;border:3px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:5px 5px #23303fe0}.reward-illustration,.reward-tile-grid{position:absolute;top:0;right:0;bottom:0;left:0}.reward-illustration{overflow:hidden}.reward-illustration:before,.reward-illustration:after,.art-shape{position:absolute;display:block;content:""}.reward-illustration.is-orbit-camp{background:radial-gradient(circle at 18% 18%,#ffffff 0 2px,transparent 3px),radial-gradient(circle at 74% 22%,#ffffff 0 2px,transparent 3px),radial-gradient(circle at 38% 72%,rgba(255,255,255,.9) 0 2px,transparent 3px),linear-gradient(150deg,#26415f,#1d8a99 58%,#f0b429 130%)}.reward-illustration.is-orbit-camp:before{left:-18%;right:-18%;bottom:-24%;height:45%;border:4px solid #23303f;border-radius:50% 50% 0 0;background:#68d391}.reward-illustration.is-orbit-camp:after{left:14%;bottom:12%;width:46%;height:12%;border-radius:999px;background:#23303f38}.reward-illustration.is-orbit-camp .art-main{left:30%;top:26%;width:38%;height:38%;border:4px solid #23303f;border-radius:50%;background:radial-gradient(circle at 34% 32%,#fff8ea 0 10%,transparent 11%),linear-gradient(140deg,#f0b429 0,#f0b429 45%,#ea5b45 46%,#ea5b45)}.reward-illustration.is-orbit-camp .art-ring{left:18%;top:38%;width:62%;height:16%;border:4px solid #23303f;border-left-color:transparent;border-right-color:transparent;border-radius:50%;transform:rotate(-18deg)}.reward-illustration.is-orbit-camp .art-accent{right:12%;top:18%;width:18%;height:28%;border:3px solid #23303f;border-radius:50% 50% 46% 46%;background:#fff8ea;transform:rotate(30deg)}.reward-illustration.is-orbit-camp .art-accent:after{position:absolute;left:25%;bottom:-18%;width:50%;height:28%;border-radius:0 0 50% 50%;background:#ea5b45;content:""}.reward-illustration.is-orbit-camp .art-small{left:16%;top:18%;width:13%;height:13%;border:3px solid #23303f;border-radius:50%;background:#d9f99d}.reward-illustration.is-orbit-camp .art-path{left:18%;bottom:20%;width:9%;height:20%;border:3px solid #23303f;border-radius:50% 50% 8px 8px;background:#fff8ea}.reward-illustration.is-reef-treasure{background:radial-gradient(circle at 20% 26%,rgba(255,255,255,.9) 0 4px,transparent 5px),radial-gradient(circle at 82% 18%,rgba(255,255,255,.72) 0 5px,transparent 6px),linear-gradient(180deg,#7dd3fc,#1d8a99 58%,#126a76)}.reward-illustration.is-reef-treasure:before{left:-10%;right:-10%;bottom:-12%;height:32%;border-radius:50% 50% 0 0;background:#f0b429}.reward-illustration.is-reef-treasure:after{left:6%;bottom:8%;width:22%;height:28%;border-radius:50% 50% 10px 10px;background:linear-gradient(90deg,transparent 40%,#23303f 41% 47%,transparent 48%),#ea5b45}.reward-illustration.is-reef-treasure .art-main{left:28%;bottom:18%;width:44%;height:28%;border:4px solid #23303f;border-radius:8px 8px 12px 12px;background:linear-gradient(180deg,#f0b429 0,#f0b429 44%,#b7791f 45%,#b7791f)}.reward-illustration.is-reef-treasure .art-main:before{position:absolute;top:-24%;right:14%;bottom:54%;left:14%;border:4px solid #23303f;border-bottom:0;border-radius:999px 999px 0 0;background:#f6ad55;content:""}.reward-illustration.is-reef-treasure .art-main:after{position:absolute;left:42%;top:40%;width:16%;height:24%;border:3px solid #23303f;border-radius:5px;background:#fff8ea;content:""}.reward-illustration.is-reef-treasure .art-accent{right:12%;top:30%;width:24%;height:13%;border:3px solid #23303f;border-radius:50% 60% 55% 50%;background:#d9f99d}.reward-illustration.is-reef-treasure .art-accent:after{position:absolute;right:-22%;top:20%;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:14px solid #23303f;content:""}.reward-illustration.is-reef-treasure .art-small{left:12%;top:38%;width:15%;height:11%;border:3px solid #23303f;border-radius:50%;background:#fff8ea}.reward-illustration.is-reef-treasure .art-ring{right:16%;bottom:8%;width:8%;height:25%;border-radius:999px 999px 0 0;background:#38a169;box-shadow:-12px 8px #d9f99d,12px 10px #68d391}.reward-illustration.is-reef-treasure .art-path{left:42%;top:12%;width:8%;height:8%;border:3px solid #23303f;border-radius:50%;background:#ffffff80;box-shadow:18px -10px #ffffff70,34px 10px #ffffff61}.reward-illustration.is-number-garden{background:radial-gradient(circle at 72% 24%,#fff8ea 0 14%,transparent 15%),linear-gradient(180deg,#fef3c7 0,#fef3c7 42%,#86efac 43%,#86efac)}.reward-illustration.is-number-garden:before{left:-12%;right:-12%;bottom:-18%;height:44%;border-top:4px solid #23303f;border-radius:50% 50% 0 0;background:#38a169}.reward-illustration.is-number-garden:after{left:10%;top:14%;width:18%;height:18%;border:3px solid #23303f;border-radius:50%;background:#ea5b45;box-shadow:34px 20px #f0b429,66px -2px #1d8a99}.reward-illustration.is-number-garden .art-main{left:30%;bottom:18%;width:40%;height:36%;border:4px solid #23303f;border-radius:45% 45% 8px 8px;background:linear-gradient(90deg,transparent 48%,#23303f 49% 52%,transparent 53%),#fff8ea}.reward-illustration.is-number-garden .art-main:before{position:absolute;left:30%;top:-34%;width:40%;height:38%;border:4px solid #23303f;border-radius:50% 50% 0 0;background:#f0b429;content:""}.reward-illustration.is-number-garden .art-accent{left:16%;bottom:20%;width:16%;height:32%;border:3px solid #23303f;border-radius:999px 999px 8px 8px;background:#1d8a99}.reward-illustration.is-number-garden .art-accent:after{position:absolute;left:30%;bottom:12%;width:40%;height:54%;border-radius:999px;background:#fff8ea;content:""}.reward-illustration.is-number-garden .art-small{right:18%;bottom:24%;width:17%;height:17%;border:3px solid #23303f;border-radius:50%;background:#ea5b45}.reward-illustration.is-number-garden .art-ring{right:11%;bottom:18%;width:12%;height:31%;border:3px solid #23303f;border-radius:999px 999px 8px 8px;background:#f0b429}.reward-illustration.is-number-garden .art-path{left:38%;bottom:8%;width:24%;height:11%;border-radius:50%;background:#23303f38}.reward-tile-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));z-index:2}.reward-tile{position:relative;border-right:1px solid rgba(35,48,63,.16);border-bottom:1px solid rgba(35,48,63,.16);background:linear-gradient(135deg,rgba(255,248,234,.32),transparent 56%),var(--paper);opacity:1;transform-origin:center}.reward-tile:nth-child(3n){background:linear-gradient(135deg,rgba(240,180,41,.22),transparent 58%),#fdf2d1}.reward-tile:nth-child(4n){background:linear-gradient(135deg,rgba(29,138,153,.18),transparent 62%),#fffdf5}.reward-tile:nth-child(5n){background:linear-gradient(135deg,rgba(234,91,69,.16),transparent 62%),#fff8ea}.reward-tile.is-revealed{opacity:0}.reward-tile.is-bursting{z-index:3;animation:reward-tile-burst .62s cubic-bezier(.16,.9,.24,1) forwards}.reward-tile.is-bursting:before,.reward-tile.is-bursting:after{position:absolute;left:50%;top:50%;width:38%;height:38%;border:2px solid var(--line);background:var(--yellow);content:"";pointer-events:none}.reward-tile.is-bursting:after{width:28%;height:28%;background:var(--coral);transform:rotate(34deg)}.reward-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.82rem;font-weight:900}.reward-panel.is-complete .reward-frame{animation:reward-complete-glow .9s ease-out}@keyframes reward-tile-burst{0%{opacity:1;transform:scale(1) rotate(0)}38%{opacity:1;transform:scale(1.12) rotate(4deg)}to{opacity:0;transform:translate(var(--burst-x),var(--burst-y)) scale(.24) rotate(24deg)}}@keyframes reward-complete-glow{0%,to{box-shadow:5px 5px #23303fe0}46%{box-shadow:0 0 0 10px #f0b42938,5px 5px #23303fe0}}.score-board{display:grid;align-content:start;gap:12px}.score-item{display:grid;gap:6px;min-height:120px;border:3px solid var(--line);border-radius:8px;background:#fff;box-shadow:6px 6px 0 var(--ink);padding:16px}.score-item span{color:var(--muted);font-size:.95rem}.score-item strong{align-self:end;font-size:clamp(2rem,4vw,3.4rem);line-height:.95}.accent-coral{border-top:12px solid var(--coral)}.accent-teal{border-top:12px solid var(--teal)}.accent-yellow{border-top:12px solid var(--yellow)}.accent-green{border-top:12px solid var(--green)}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.practice-stage{min-height:auto}.score-board{grid-template-columns:repeat(4,minmax(0,1fr))}.score-item{min-height:88px}}@media(max-width:620px){.app-shell{grid-template-rows:minmax(0,1fr) auto;gap:10px;height:var(--app-height);min-height:var(--app-height);overflow:hidden;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.practice-stage{grid-template-rows:auto minmax(0,1fr) auto;gap:10px;min-height:0}.playing-layout{grid-template-columns:1fr;grid-template-rows:112px minmax(0,1fr);gap:8px;min-height:0}.playing-layout .problem-panel{min-height:0}.reward-panel{grid-template-columns:104px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:8px;min-height:0;border-width:3px;box-shadow:5px 5px 0 var(--ink);padding:8px}.reward-panel:before{top:6px;right:6px;bottom:6px;left:6px}.reward-frame{grid-row:1 / 3;width:96px;border-width:2px;box-shadow:3px 3px #23303fe0}.reward-meta{align-items:center}.reward-meta h2{font-size:1rem}.reward-meta .prompt{font-size:.68rem}.reward-meta strong{border-width:2px;box-shadow:2px 2px 0 var(--ink);padding:4px 6px;font-size:1rem}.reward-meta strong span,.reward-progress{font-size:.68rem}.reward-progress{align-self:end}.top-bar{align-items:flex-start;flex-wrap:wrap}.ghost-button{min-width:82px;min-height:48px}.top-actions{gap:8px;justify-content:flex-end;margin-left:auto}.sound-toggle{min-width:76px;min-height:48px;font-size:.88rem}.problem-panel{min-height:0;box-shadow:6px 6px 0 var(--ink)}.start-panel,.summary-panel,.history-panel{padding:18px}.start-content h2{font-size:clamp(2.2rem,13vw,4rem)}.operation-picker,.difficulty-picker{gap:7px}.operation-picker button,.difficulty-picker button{min-height:64px;border-width:2px;box-shadow:4px 4px 0 var(--ink);padding:8px}.operation-picker span,.difficulty-picker span{font-size:.78rem}.operation-picker strong{font-size:clamp(1.18rem,5.2vw,1.6rem)}.difficulty-picker strong{font-size:clamp(.82rem,3.3vw,1rem)}.start-button{min-height:66px;font-size:1.7rem}.summary-content,.history-content{gap:10px}.summary-metrics,.history-metrics{gap:8px}.summary-metrics div,.history-metrics div,.missed-problem-list div,.recent-wrong-list div{padding:9px}.week-navigator{grid-template-columns:repeat(2,minmax(0,1fr))}.week-navigator div{grid-column:1 / -1;grid-row:1}.week-navigator button{grid-row:2;min-height:46px}.history-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.missed-problem-list{grid-template-columns:1fr}.summary-section li{padding:7px 9px;font-size:.9rem}.problem-panel:before{top:14px;right:14px;bottom:14px;left:14px}.question-mark{top:14px;right:18px}.question{gap:14px;font-size:clamp(4.4rem,21vw,6rem)}.difficulty-medium .question{gap:9px;font-size:clamp(3.2rem,15vw,4.7rem)}.difficulty-hard .question{gap:6px;font-size:clamp(2.25rem,11vw,3.6rem)}.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.answer-button{min-height:clamp(76px,calc(var(--app-vh) * 10.8),92px);border-width:3px;box-shadow:5px 5px 0 var(--ink);font-size:clamp(2.4rem,13vw,3.7rem)}.answer-button.digits-3{font-size:clamp(2rem,10vw,3.2rem)}.answer-button.digits-4{font-size:clamp(1.55rem,8.2vw,2.65rem)}.answer-button.digits-5{font-size:clamp(1.28rem,6.8vw,2.2rem)}.score-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.score-item{min-height:clamp(64px,calc(var(--app-vh) * 9),78px);border-width:2px;border-top-width:9px;padding:10px}.score-item strong{font-size:clamp(1.25rem,6.5vw,1.9rem)}}@media(max-width:620px)and (max-height:760px){.app-shell{gap:8px;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.practice-stage{gap:8px}.eyebrow{font-size:.78rem}h1{margin-top:2px;font-size:1.35rem}.ghost-button{min-width:72px;min-height:42px;box-shadow:4px 4px 0 var(--ink);font-size:.9rem}.ghost-button:disabled:active{box-shadow:4px 4px 0 var(--ink)}.top-actions{gap:6px}.sound-toggle{min-width:66px;min-height:42px;box-shadow:4px 4px 0 var(--ink);font-size:.78rem}.problem-panel{border-width:3px}.start-panel,.summary-panel,.history-panel{padding:14px}.start-content{gap:10px}.playing-layout{grid-template-rows:96px minmax(0,1fr);gap:6px}.reward-panel{grid-template-columns:88px minmax(0,1fr);padding:7px}.reward-frame{width:80px}.reward-meta h2{font-size:.88rem}.reward-meta strong{font-size:.86rem}.start-content h2{font-size:clamp(2rem,11vw,3.3rem)}.operation-picker,.difficulty-picker{gap:6px}.operation-picker button,.difficulty-picker button{min-height:54px;padding:6px}.operation-picker span,.difficulty-picker span{font-size:.68rem}.operation-picker strong{font-size:clamp(1rem,4.8vw,1.35rem)}.difficulty-picker strong{font-size:clamp(.68rem,3vw,.86rem)}.start-button{min-width:128px;min-height:56px;border-width:3px;box-shadow:5px 5px 0 var(--ink);font-size:1.45rem}.start-button.compact{min-height:44px;font-size:1rem}.summary-head h2{font-size:1.8rem}.summary-metrics,.history-metrics{gap:6px}.summary-metrics div,.history-metrics div,.missed-problem-list div,.recent-wrong-list div{border-width:2px;padding:7px}.summary-metrics span,.summary-section h3,.history-metrics span,.missed-problem-list span,.recent-wrong-list span{font-size:.75rem}.summary-metrics strong,.history-metrics strong{font-size:1.3rem}.missed-problem-list strong,.recent-wrong-list strong{font-size:1.02rem}.missed-problem-list em,.recent-wrong-list em{font-size:.78rem}.summary-section li{border-left-width:5px;padding:6px 8px;font-size:.82rem}.problem-panel:before{top:11px;right:11px;bottom:11px;left:11px}.prompt{font-size:.92rem}.question{gap:10px;margin-top:4px;font-size:clamp(3.8rem,18vw,5rem)}.difficulty-medium .question{gap:7px;font-size:clamp(2.8rem,13vw,4rem)}.difficulty-hard .question{gap:5px;font-size:clamp(2rem,9.6vw,3.1rem)}.feedback{min-height:28px;margin-top:4px;font-size:1.18rem}.answer-button{min-height:clamp(62px,calc(var(--app-vh) * 9.2),76px);box-shadow:4px 4px 0 var(--ink);font-size:clamp(2rem,11vw,3rem)}.answer-button.digits-3{font-size:clamp(1.7rem,8.8vw,2.65rem)}.answer-button.digits-4{font-size:clamp(1.34rem,7.2vw,2.25rem)}.answer-button.digits-5{font-size:clamp(1.1rem,5.8vw,1.86rem)}.score-board{gap:6px}.score-item{min-height:clamp(54px,calc(var(--app-vh) * 8.2),64px);padding:7px}.score-item span{font-size:.7rem}.score-item strong{font-size:clamp(1.05rem,5.5vw,1.5rem)}}@media(orientation:landscape)and (max-width:980px)and (max-height:620px){.app-shell{grid-template-columns:minmax(0,1fr) minmax(104px,136px);grid-template-rows:1fr;gap:10px;height:var(--app-height);min-height:var(--app-height);overflow:hidden;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.practice-stage{grid-template-rows:auto minmax(0,1fr) auto;gap:8px;min-height:0}.playing-layout{grid-template-columns:minmax(150px,.72fr) minmax(0,1.28fr);gap:8px;min-height:0}.playing-layout .problem-panel{min-height:0}.reward-panel{min-height:0;border-width:3px;box-shadow:5px 5px 0 var(--ink);padding:8px}.reward-frame{width:min(100%,180px);border-width:2px;box-shadow:3px 3px #23303fe0}.reward-meta h2{font-size:clamp(.9rem,calc(var(--app-vh) * 4.6),1.2rem)}.reward-meta strong{border-width:2px;box-shadow:2px 2px 0 var(--ink);padding:4px 6px;font-size:.92rem}.reward-progress{font-size:.66rem}.top-bar{align-items:flex-start;gap:8px}.eyebrow{font-size:.76rem}h1{margin-top:2px;font-size:1.25rem}.top-actions{gap:6px}.ghost-button,.sound-toggle{min-width:66px;min-height:38px;box-shadow:4px 4px 0 var(--ink);font-size:.76rem}.problem-panel{min-height:0;border-width:3px;box-shadow:5px 5px 0 var(--ink)}.problem-panel:before{top:10px;right:10px;bottom:10px;left:10px}.start-panel,.summary-panel,.history-panel{padding:12px}.start-content{gap:8px}.start-content h2{font-size:clamp(1.8rem,calc(var(--app-vh) * 12),2.9rem)}.difficulty-current{margin-top:-4px;padding:5px 10px;font-size:.84rem}.difficulty-picker{gap:6px}.difficulty-picker button{min-height:48px;border-width:2px;box-shadow:3px 3px 0 var(--ink);padding:6px}.difficulty-picker span{font-size:.66rem}.difficulty-picker strong{font-size:.82rem}.start-button{min-width:112px;min-height:44px;border-width:3px;box-shadow:4px 4px 0 var(--ink);font-size:1.2rem}.summary-content,.history-content{gap:8px}.summary-head h2{font-size:1.7rem}.summary-metrics,.history-metrics{gap:6px}.summary-metrics div,.history-metrics div,.missed-problem-list div,.recent-wrong-list div{border-width:2px;padding:7px}.summary-metrics span,.summary-section h3,.history-metrics span,.missed-problem-list span,.recent-wrong-list span{font-size:.72rem}.summary-metrics strong,.history-metrics strong{font-size:1.24rem}.summary-section li{border-left-width:5px;padding:6px 8px;font-size:.8rem}.week-navigator{gap:6px}.week-navigator button{min-width:70px;min-height:40px;border-width:2px;box-shadow:3px 3px 0 var(--ink);font-size:.78rem}.week-navigator div{border-width:2px;box-shadow:3px 3px 0 var(--ink);padding:6px 8px}.prompt{font-size:.84rem}.question{gap:10px;margin-top:4px;font-size:clamp(2.8rem,calc(var(--app-vh) * 18),4.5rem)}.difficulty-medium .question{gap:7px;font-size:clamp(2.3rem,calc(var(--app-vh) * 15),3.6rem)}.difficulty-hard .question{gap:5px;font-size:clamp(1.8rem,calc(var(--app-vh) * 12),2.8rem)}.feedback{min-height:24px;margin-top:4px;font-size:1.05rem}.answer-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.answer-button{min-height:clamp(54px,calc(var(--app-vh) * 18),68px);border-width:3px;box-shadow:4px 4px 0 var(--ink);font-size:2rem}.answer-button.digits-3{font-size:1.75rem}.answer-button.digits-4{font-size:1.45rem}.answer-button.digits-5{font-size:1.16rem}.score-board{grid-template-columns:1fr;align-content:stretch;gap:8px}.score-item{min-height:0;border-width:2px;border-top-width:8px;box-shadow:4px 4px 0 var(--ink);padding:7px}.score-item span{font-size:.68rem}.score-item strong{font-size:1.35rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
