@font-face{font-family:Jua;src:url(./Jua-BqUvzhWx.woff2)format("woff2");font-display:swap}@font-face{font-family:Galmuri11;src:url(./Galmuri11-DfQIlyDK.woff2)format("woff2");font-display:swap}:root{--qc-font:"Jua", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;--qc-ink:#3f3d56;--qc-ink-soft:#6b6880;--qc-paper:#fffdf8;--qc-line:#e6e1d6;--qc-good:#2fb36b;--qc-good-bg:#dff7e8;--qc-bad:#e5484d;--qc-bad-bg:#ffe3e5;--qc-math:#4f7cff;--qc-eng:#ff7a59;--qc-radius:22px;--qc-shadow:0 10px 30px #281e3c2e}.vis{font-family:var(--qc-font);color:var(--qc-ink);box-sizing:border-box;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;max-width:100%;display:flex}.vis-svg{max-width:100%;height:auto;max-height:100%;display:block}.vis-label{color:var(--qc-ink-soft);text-align:center;margin-top:4px;font-size:clamp(16px,2.3vmin,22px)}.vis-em{font-size:var(--em,48px);justify-content:center;align-items:center;line-height:1.1;display:inline-flex;position:relative}.vis-em.vis-em-lg{font-size:clamp(60px,10vmin,96px)}.vis-em.is-crossed{opacity:.55}.vis-em.is-crossed:after{content:"✕";color:var(--qc-bad);opacity:1;text-shadow:0 0 4px #fff;justify-content:center;align-items:center;font-size:1.15em;font-weight:700;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.vis-empty{color:var(--qc-ink-soft);font-size:22px}.vis-error{color:var(--qc-bad);font-size:18px}.vis-text{text-align:center;letter-spacing:.02em;white-space:pre-wrap;padding:6px 14px;font-size:clamp(30px,6vmin,52px);line-height:1.25}.vis-text.vis-size-md{font-size:clamp(26px,4.5vmin,40px)}.vis-text.vis-size-xl{font-size:clamp(44px,9vmin,84px)}.vis-text[lang=en]{letter-spacing:.06em}.vis-emoji{flex-direction:column;gap:4px}.vis-emoji .vis-em{font-size:clamp(72px,14vmin,120px)}.vis-emoji.vis-size-md .vis-em{font-size:clamp(56px,10vmin,84px)}.vis-emoji.vis-size-xl .vis-em{font-size:clamp(96px,20vmin,168px)}.vis-count{--em:48px}.vis-count-row{flex-wrap:wrap;gap:8px 10px;padding:8px}.vis-count-grid{grid-template-columns:repeat(var(--cols,5), auto);border:2px solid var(--qc-line);background:#fff;border-radius:16px;gap:6px 12px;padding:10px 14px;display:grid}.vis-count .vis-em{font-size:min(var(--em), 11vw)}.vis-tenframes{gap:18px}.vis-tenframe{border:3px solid var(--qc-ink);background:#fff;border-radius:6px;grid-template-rows:repeat(2,clamp(44px,9vmin,64px));grid-template-columns:repeat(5,clamp(44px,9vmin,64px));display:grid;overflow:hidden}.vis-tf-cell{border:1.5px solid var(--qc-ink);justify-content:center;align-items:center;font-size:clamp(28px,6vmin,40px);display:flex}.vis-tf-cell .vis-em{font-size:inherit}.vis-scatter .vis-svg{max-width:min(100%,520px)}.vis-groups{gap:12px}.vis-group{border:2.5px solid var(--qc-line);background:#fff;border-radius:18px;flex-direction:column;align-items:center;min-width:90px;padding:10px 14px;display:flex}.vis-group-items{grid-template-columns:repeat(var(--cols,3), auto);justify-items:center;gap:4px 8px;display:grid}.vis-group-items .vis-em{font-size:min(var(--em,48px), 10vw)}.vis-op{color:var(--qc-ink);padding:0 4px;font-size:clamp(36px,7vmin,56px)}.vis-gap{width:16px}.vis-compare{flex-wrap:nowrap;align-items:stretch;gap:clamp(10px,3vmin,28px)}.vis-compare-side{border:3px solid var(--qc-line);background:#fff;border-radius:20px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;min-width:120px;padding:12px 16px;display:flex}.vis-compare-side.is-left{border-color:#a9c9ff}.vis-compare-side.is-right{border-color:#ffb5c2}.vis-compare-body{flex:1;justify-content:center;align-items:center;display:flex}.vis-compare-mid{color:var(--qc-ink-soft);text-align:center;align-self:center;min-width:8px;font-size:clamp(20px,3.5vmin,30px)}.vis-bignum{font-size:clamp(56px,12vmin,104px);line-height:1}.vis-compare-text{font-size:clamp(24px,4.5vmin,40px)}.vis-clock .vis-svg{width:clamp(180px,34vmin,280px)}.vis-shapes{gap:14px 22px}.vis-shape{flex-direction:column;align-items:center;display:flex}.vis-shape-svg{width:auto}.vis-pattern{gap:10px}.vis-tile{border:3px solid var(--qc-line);background:#fff;border-radius:16px;justify-content:center;align-items:center;min-width:clamp(56px,10vmin,84px);height:clamp(56px,10vmin,84px);padding:0 10px;font-size:clamp(32px,6vmin,50px);line-height:1;display:flex}.vis-tile.is-blank{border-style:dashed;border-color:var(--qc-bad);color:var(--qc-bad);background:#fff8f8}.vis-blocks .vis-svg{max-width:min(100%,640px)}.vis-numberline .vis-svg{width:100%;max-width:680px}.vis-lengths .vis-svg{width:100%;max-width:640px}.vis-ruler .vis-svg{width:100%;max-width:680px}.vis-bargraph .vis-svg{max-width:min(100%,520px)}.vis-balance .vis-svg{max-width:min(100%,440px)}.vis-table{border-collapse:collapse;font-family:var(--qc-font);box-shadow:0 0 0 3px var(--qc-ink);background:#fff;border-radius:12px;font-size:clamp(18px,3vmin,26px);overflow:hidden}.vis-table th,.vis-table td{border:2px solid var(--qc-ink);text-align:center;min-width:56px;padding:8px 18px}.vis-table th{background:#eef2ff}.vis-blank{border:2px dashed var(--qc-bad);min-width:1.4em;height:1.4em;color:var(--qc-bad);background:#fff8f8;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.vis-title{text-align:center;width:100%;margin-bottom:6px;font-size:clamp(20px,3.5vmin,28px)}.vis-pictograph{flex-direction:column}.vis-picto-table td.vis-picto-cells{text-align:left}.vis-picto-sym{margin-right:2px;font-size:clamp(26px,4.5vmin,36px)}.vis-legend{color:var(--qc-ink-soft);margin-top:6px;font-size:16px}.vis-containers{align-items:flex-end;gap:18px 26px}.vis-container{flex-direction:column;align-items:center;display:flex}.vis-container-svg{width:clamp(90px,16vmin,130px)}.vis-areas{align-items:flex-end;gap:18px 30px}.vis-area{flex-direction:column;align-items:center;display:flex}.vis-calendar{flex-direction:column;gap:6px}.vis-cal-title{font-size:clamp(20px,3.5vmin,28px)}.vis-cal-table{border-collapse:collapse;font-family:var(--qc-font);border:3px solid var(--qc-ink);background:#fff;border-radius:12px;overflow:hidden}.vis-cal-table th{border:1.5px solid var(--qc-line);background:#f1f5f9;width:clamp(38px,7vmin,56px);padding:5px 0;font-size:clamp(15px,2.6vmin,20px)}.vis-cal-table td{text-align:center;border:1.5px solid var(--qc-line);height:clamp(34px,6vmin,46px);font-size:clamp(16px,2.8vmin,22px)}.vis-cal-table .is-sun{color:#e5484d}.vis-cal-table .is-sat{color:#2563eb}.vis-cal-day span{border-radius:50%;justify-content:center;align-items:center;width:1.7em;height:1.7em;display:inline-flex}.vis-cal-day.is-hl span{background:#ffd670;font-weight:700;box-shadow:0 0 0 3px #f59e0b}.vis-grid-table.has-header th{background:#fdf0a8}.vis-row{flex-wrap:nowrap;gap:14px}.vis-row-item{justify-content:center;align-items:center;display:flex}.qc-backdrop{z-index:1000;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);font-family:var(--qc-font);color:var(--qc-ink);pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#141228a8;justify-content:center;align-items:stretch;animation:.22s ease-out qc-fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.qc-card{background:var(--qc-paper);border-radius:var(--qc-radius);max-width:1280px;box-shadow:var(--qc-shadow);outline:none;flex-direction:column;flex:auto;min-height:0;margin:8px;animation:.26s cubic-bezier(.2,.9,.3,1.2) qc-pop;display:flex;position:relative;overflow:hidden}.qc-head{border-bottom:2px solid var(--qc-line);background:#fff;flex:none;align-items:center;gap:10px;padding:10px 14px;display:flex}.qc-chip{color:#fff;background:var(--qc-math);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:4px;padding:6px 12px;font-size:18px;display:inline-flex}.qc-chip.is-english{background:var(--qc-eng)}.qc-lesson{color:var(--qc-ink-soft);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:20px;overflow:hidden}.qc-context{color:var(--qc-ink-soft);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;max-width:40%;font-size:17px;overflow:hidden}.qc-tries{letter-spacing:2px;flex:none;font-size:20px}.qc-main{flex:auto;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:8px;min-height:0;padding:10px 14px 14px;display:grid;overflow:auto}.qc-left{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.qc-right{flex-direction:column;justify-content:center;min-width:0;display:flex}.qc-prompt-row{align-items:flex-start;gap:10px;display:flex}.qc-prompt{word-break:keep-all;overflow-wrap:anywhere;flex:auto;padding:2px 0;font-size:clamp(28px,3.4vw + 8px,44px);line-height:1.3}.qc-speak{border:2.5px solid var(--qc-line);cursor:pointer;width:56px;height:56px;box-shadow:0 2px 0 var(--qc-line);background:#fff;border-radius:50%;flex:0 0 56px;justify-content:center;align-items:center;font-size:26px;display:flex}.qc-speak:active{box-shadow:none;transform:translateY(1px)}.qc-listen{color:#8a4b12;cursor:pointer;background:linear-gradient(#fff4e6,#ffe2c2);border:3px solid #ffb37a;border-radius:999px;align-self:center;align-items:center;gap:12px;min-height:68px;padding:12px 28px;font-family:inherit;font-size:clamp(22px,3vmin,30px);display:inline-flex;box-shadow:0 4px #f0a35c}.qc-listen:active{transform:translateY(2px);box-shadow:0 2px #f0a35c}.qc-listen .qc-listen-icon{font-size:34px}.qc-listen.is-playing{animation:.9s ease-in-out infinite qc-pulse}.qc-visual{flex:auto;justify-content:center;align-items:center;min-height:0;padding:4px;display:flex;overflow:hidden}.qc-visual>.vis{max-height:100%}.qc-visual .vis-svg{max-height:min(40vh,420px)}.qc-bubble{border:3px solid var(--qc-line);word-break:keep-all;background:#fff;border-radius:18px;padding:12px 18px;font-size:clamp(20px,2.8vmin,26px);line-height:1.35;display:none;position:relative}.qc-bubble.is-visible{animation:.24s ease-out qc-pop;display:block}.qc-bubble.is-hint{background:#fff9e0;border-color:#f6c343}.qc-bubble.is-bad{background:var(--qc-bad-bg);border-color:#f4a6aa}.qc-bubble.is-good{background:var(--qc-good-bg);border-color:#86d9a8}.qc-bubble-text{display:block}.qc-bubble-explain{color:var(--qc-ink-soft);margin-top:4px;font-size:.9em;display:block}.qc-bubble-actions{justify-content:flex-end;margin-top:10px;display:flex}.qc-confirm{color:#fff;cursor:pointer;background:linear-gradient(#5b9bff,#3b82f6);border:3px solid #3b82f6;border-radius:16px;min-width:160px;min-height:60px;padding:8px 26px;font-family:inherit;font-size:26px;box-shadow:0 4px #1d4ed8}.qc-confirm:active{transform:translateY(2px);box-shadow:0 2px #1d4ed8}.qc-choices{gap:12px;display:grid}.qc-choices.qc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qc-choices.qc-stacked{grid-template-columns:minmax(0,1fr)}.qc-choice{border:3px solid var(--qc-line);min-height:76px;color:var(--qc-ink);cursor:pointer;text-align:center;box-shadow:0 4px 0 var(--qc-line);word-break:keep-all;overflow-wrap:anywhere;background:#fff;border-radius:20px;justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-family:inherit;font-size:clamp(24px,3.2vmin,32px);line-height:1.25;transition:transform 90ms,box-shadow 90ms,background .12s;display:flex;position:relative}.qc-choice:first-child{background:#f0f5ff;border-color:#bcd2ff;box-shadow:0 4px #bcd2ff}.qc-choice:nth-child(2){background:#fff3f5;border-color:#ffc2cc;box-shadow:0 4px #ffc2cc}.qc-choice:nth-child(3){background:#f0fbf4;border-color:#b9e8c9;box-shadow:0 4px #b9e8c9}.qc-choice:nth-child(4){background:#fff9e6;border-color:#ffe08a;box-shadow:0 4px #ffe08a}.qc-choice:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.qc-choice:disabled{cursor:default}.qc-choice.is-emoji{min-height:92px;font-size:clamp(44px,7vmin,64px)}.qc-choice.has-visual{padding:8px}.qc-choice .vis{max-height:140px}.qc-choice .vis-svg{max-height:130px}.qc-choice .vis-clock .vis-svg{width:120px}.qc-choice .vis-text{padding:0;font-size:clamp(26px,4vmin,38px)}.qc-choice .qc-key{color:var(--qc-ink-soft);opacity:.7;font-size:14px;position:absolute;top:8px;left:10px}.qc-choice .qc-choice-speak{border:2px solid var(--qc-line);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex;position:absolute;top:8px;right:8px}.qc-choice.is-wrong{color:#b3323a;animation:.42s qc-shake;background:var(--qc-bad-bg)!important;border-color:var(--qc-bad)!important;box-shadow:none!important}.qc-choice.is-wrong:after{content:"✖";color:var(--qc-bad);font-size:30px;position:absolute;bottom:6px;right:12px}.qc-choice.is-wrong.has-speak:after{right:56px}.qc-choice.is-correct{animation:.9s qc-glow;background:var(--qc-good-bg)!important;border-color:var(--qc-good)!important;box-shadow:0 0 0 6px #2fb36b59!important}.qc-choice.is-answer{animation:1s ease-in-out 2 qc-pulse;background:var(--qc-good-bg)!important;border-color:var(--qc-good)!important;box-shadow:0 0 0 6px #2fb36b4d!important}.qc-choice.is-answer:before{content:"⭕";font-size:22px;position:absolute;top:6px;left:10px}.qc-choice.is-dim{opacity:.45}.qc-numpad{flex-direction:column;align-items:center;gap:10px;display:flex}.qc-display{box-sizing:border-box;border:3px solid var(--qc-line);letter-spacing:4px;font-variant-numeric:tabular-nums;background:#fff;border-radius:18px;justify-content:flex-end;align-items:center;width:min(100%,320px);min-height:84px;padding:8px 22px;font-size:clamp(40px,6vmin,56px);display:flex;position:relative}.qc-display .qc-cursor{background:var(--qc-ink);width:3px;height:1em;margin-left:4px;animation:1s step-end infinite qc-blink}.qc-display.is-empty{color:#c9c4b8;letter-spacing:0;justify-content:center;font-size:26px}.qc-display.is-wrong{border-color:var(--qc-bad);background:var(--qc-bad-bg);animation:.42s qc-shake}.qc-display.is-correct{border-color:var(--qc-good);background:var(--qc-good-bg);box-shadow:0 0 0 6px #2fb36b59}.qc-display.is-answer{border-color:var(--qc-good);background:var(--qc-good-bg);color:#1a7f45}.qc-keys{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(100%,320px);display:grid}.qc-key-btn{border:3px solid var(--qc-line);min-height:64px;color:var(--qc-ink);cursor:pointer;box-shadow:0 4px 0 var(--qc-line);background:#fff;border-radius:16px;font-family:inherit;font-size:32px;transition:transform 80ms,box-shadow 80ms}.qc-key-btn:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.qc-key-btn.is-del{background:#fff3f5;border-color:#ffc2cc;font-size:28px;box-shadow:0 4px #ffc2cc}.qc-key-btn.is-ok{color:#fff;background:linear-gradient(#5b9bff,#3b82f6);border-color:#3b82f6;font-size:28px;box-shadow:0 4px #1d4ed8}.qc-key-btn:disabled{opacity:.5;cursor:default}.qc-mark{pointer-events:none;z-index:5;justify-content:center;align-items:center;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.qc-mark.is-visible{display:flex}.qc-mark-inner{box-shadow:var(--qc-shadow);background:#ffffffeb;border-radius:28px;flex-direction:column;align-items:center;gap:6px;padding:18px 34px;animation:.7s cubic-bezier(.2,.9,.3,1.3) qc-mark-pop;display:flex}.qc-mark-symbol{font-size:clamp(80px,16vmin,140px);line-height:1}.qc-mark-text{color:var(--qc-good);font-size:clamp(26px,4vmin,38px)}.qc-mark.is-bad .qc-mark-text{color:var(--qc-bad)}.qc-sparkle{pointer-events:none;font-size:28px;animation:.9s ease-out forwards qc-sparkle;position:absolute}@media (orientation:landscape) and (min-width:860px){.qc-main{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;padding:14px 20px 18px}.qc-card{margin:14px}.qc-visual .vis-svg{max-height:min(56vh,480px)}.qc-choice{min-height:96px}.qc-key-btn{min-height:68px}.qc-mode-numpad .qc-main{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}@media (orientation:landscape) and (min-width:860px) and (max-height:700px){.qc-prompt{font-size:clamp(26px,3vw + 4px,38px)}.qc-choice{min-height:82px}.qc-key-btn{min-height:58px}.qc-display{min-height:70px}.qc-card{margin:8px}}@media (orientation:portrait) and (min-width:700px){.qc-main{gap:14px;padding:16px 22px 22px}.qc-choice{min-height:96px}.qc-visual .vis-svg{max-height:min(38vh,440px)}.qc-key-btn{min-height:72px}}@media (max-width:480px){.qc-card{border-radius:0;margin:0}.qc-head{gap:6px;padding:8px 10px}.qc-chip{padding:5px 9px;font-size:15px}.qc-lesson{font-size:16px}.qc-context{display:none}.qc-main{gap:8px;padding:8px 10px 12px}.qc-prompt{font-size:26px}.qc-speak{font-size:22px}.qc-visual{min-height:120px}.qc-visual .vis-svg{max-height:30vh}.qc-choice{min-height:64px;padding:8px 10px;font-size:22px}.qc-choice.is-emoji{min-height:72px;font-size:40px}.qc-key-btn{min-height:56px;font-size:26px}.qc-display{min-height:66px;font-size:36px}.qc-bubble{padding:10px 12px;font-size:18px}.qc-confirm{min-height:52px;font-size:22px}.qc-tries{font-size:16px}}@keyframes qc-fade{0%{opacity:0}to{opacity:1}}@keyframes qc-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes qc-mark-pop{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes qc-shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}@keyframes qc-glow{0%{box-shadow:0 0 #2fb36bb3}to{box-shadow:0 0 0 14px #2fb36b00}}@keyframes qc-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes qc-blink{50%{opacity:0}}@keyframes qc-sparkle{0%{opacity:1;transform:translate(0)scale(.4)}to{transform:translate(var(--dx,0), var(--dy,-80px)) scale(1.3);opacity:0}}@media (prefers-reduced-motion:reduce){.qc-backdrop,.qc-card,.qc-bubble.is-visible,.qc-mark-inner,.qc-choice,.qc-display,.qc-listen,.qc-key-btn,.qc-sparkle{transition:none!important;animation:none!important}.qc-choice.is-answer{animation:none!important}}
