@font-face{font-family:Pretendard;src:url('./assets/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;color:#25483d;background:#faf8f1;font-synthesis:none;--ink:#25483d;--muted:#68736a;--green:#285e4b;--line:#d8dfd2;--paper:#fffdf7;--soft:#edf1e6}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 88% 3%,#fffdf1 0,transparent 42%),linear-gradient(122deg,#f4f0e6 0,#faf8f1 35%,#faf8f1 70%,#f1eee2 100%);min-height:100svh}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b27932;outline-offset:4px}h1:focus{outline:none}button svg{pointer-events:none}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:clamp(25px,3vw,36px);font-weight:750;line-height:1.35;letter-spacing:-.035em}h2{font-size:23px;line-height:1.4;letter-spacing:-.02em}h3{font-size:16px;font-weight:700}small{font-size:.7em}p{line-height:1.65}svg{display:block;width:100%;overflow:visible}input,textarea{border:1.5px solid #c6cfc1;border-radius:14px;background:var(--paper);padding:14px 16px;font-size:17px;width:100%;line-height:1.55}textarea{resize:vertical;min-height:118px}input::placeholder,textarea::placeholder{color:#81877d}label{display:block;font-size:15px;font-weight:600}label input{margin-top:8px}button{transition:background-color .12s,color .12s}button:hover:not(:disabled){filter:brightness(.97)}button:disabled{opacity:.45}.primary,.secondary{min-height:52px;padding:14px 30px;border-radius:18px;font-weight:650;font-size:17px;display:inline-flex;align-items:center;justify-content:center;gap:10px}.primary{background:var(--green);color:#fffef8;box-shadow:0 4px 0 #194837}.primary:disabled{box-shadow:none;background:#b6c3b2;color:#475b4b}.secondary{background:#e7ecde;color:var(--green)}.icon-button{background:transparent;width:44px;height:44px;display:grid;place-items:center;flex:none;border-radius:12px}.icon-button svg{width:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.app-shell{width:min(1160px,100%);min-height:100svh;margin:auto;padding:0 38px;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:27px 0 22px}.activity-title{display:flex;align-items:center;gap:14px;background:none;font-size:23px;letter-spacing:-.025em;font-weight:750;text-align:left;padding:0}.activity-title>span{font-size:18px;color:#788471}.step-count{margin-left:auto;font-size:21px;font-variant-numeric:tabular-nums;font-weight:700}.step-count span{color:#829080;font-size:17px;font-weight:500}.record-button{display:flex;align-items:center;gap:7px;background:none;padding:10px 0 10px 23px;font-size:16px;font-weight:600}.record-button svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.progress{width:100%;height:3px;appearance:none;border:0;display:block;background:#e7eadd;border-radius:5px;overflow:hidden}.progress::-webkit-progress-bar{background:#e7eadd}.progress::-webkit-progress-value{background:#89a286}.progress::-moz-progress-bar{background:#89a286}.stage{width:100%;flex:1;padding:45px 0 25px}.question-layout,.explain-stage,.center-stage{max-width:760px;margin:0 auto}.eyebrow{font-size:14px;color:#6c796a;font-weight:550;letter-spacing:.015em;display:block;margin-bottom:13px}.claims{margin:25px 0 28px}.claim{display:flex;gap:17px;align-items:center;padding:18px 0;border-bottom:1px solid #e1e5d9}.claim:last-child{border-bottom:0}.claim p{font-size:18px;line-height:1.6;letter-spacing:-.015em}.claim-letter{display:grid;place-items:center;flex:none;width:34px;height:34px;background:#e3ebdc;border-radius:11px;font-weight:700}.source-condition{display:flex;gap:38px;align-items:center;justify-content:center;margin:28px 0 4px;padding:20px 26px;background:#eeefe2;border-radius:24px}.given-hand{display:flex;align-items:center;gap:14px;white-space:nowrap}.given-hand svg{width:55px;height:60px;color:#4d795f}.given-hand strong{font-size:25px;white-space:nowrap}.given-range{font-size:23px;font-weight:650;white-space:nowrap}.given-range span{padding:0 7px;color:#7c8a72}.choices{display:flex;gap:12px;flex-wrap:wrap}.choice{min-height:56px;border:1.5px solid #ccd6c4;border-radius:17px;padding:12px 24px;background:#fffdf5;font-weight:600;font-size:18px;flex:1;white-space:nowrap}.choice.selected,.ruler-choice.selected{border:2px solid #386850;background:#e0ebd9;color:#234b3c;box-shadow:0 0 0 2px #e0ebd9}.choice:disabled.selected{opacity:1}.answer-options{gap:9px}.answer-options .choice{padding:12px 17px;font-size:17px}.source-note{margin-top:28px;font-size:14px;color:#6c796a}.source-note summary{cursor:pointer;width:fit-content}.source-note p{margin:8px 0}.bottom-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0 30px;margin-top:auto}.save-status{font-size:13px;color:#778172}.bottom-bar .primary,.bottom-bar .secondary{min-width:140px}.center-stage{padding-top:35px;text-align:center}.hands-compare{display:flex;gap:45px;justify-content:center;align-items:center;margin:55px 0 60px}.hands-compare>div{width:170px;display:flex;align-items:center;flex-direction:column;gap:22px}.hands-compare svg{height:150px;width:160px;color:#648e70}.hands-compare>.smaller-hand svg{width:120px;height:150px;padding-top:35px}.hands-compare strong{font-size:27px}.hands-compare>span{font-size:28px;color:#94a089}.scene-heading{padding-left:80px}.stage-2,.stage-3{padding-top:24px}.scene-wrap{position:relative;margin:0 auto;width:100%;max-width:1020px}.scene-wrap #desk{width:100%}.cat{position:absolute;left:-28px;bottom:-39px;width:142px;height:auto;pointer-events:none;filter:drop-shadow(0 6px 8px #b99c701f)}.dimension{font-size:29px;font-weight:750;fill:#285647}.count{font-size:43px;font-weight:750;fill:#1b5544}.count-unit{font-size:34px}.segment-label{font-size:24px;font-weight:650;fill:#1e5745}.small-label{font-size:27px;font-weight:650;fill:#315c49}.axis-note{font-size:20px;fill:#6c796a}.measure-controls{max-width:660px;margin:0 auto;display:grid;grid-template-columns:44px 1fr 93px;align-items:center;gap:16px}.hand-label svg{width:43px;height:45px}input[type=range]{appearance:none;padding:0;border:0;background:#c8d6c0;height:16px;cursor:pointer;accent-color:var(--green);border-radius:20px}input[type=range]::-webkit-slider-thumb{appearance:none;background:#2a614d;width:34px;height:34px;border:5px solid #fffdf6;border-radius:50%;box-shadow:0 2px 7px #1d46333d}input[type=range]::-moz-range-thumb{background:#2a614d;width:26px;height:26px;border:5px solid #fffdf6;border-radius:50%}output{font-size:27px;white-space:nowrap;font-weight:700;text-align:center;background:#e7eadc;border-radius:12px;padding:10px 8px}.fixed-span{height:14px;background:#bbcead;border-radius:20px}.measure-controls .measure{grid-column:2/4;justify-self:center;width:330px;max-width:100%;min-height:65px;font-size:25px;border-radius:27px;margin-top:13px}.comparison{margin:28px -10px 15px}.writing-label{margin:23px 0 10px}.interval{margin:38px 0 24px}.prompt{font-size:19px;text-align:center;margin:0 0 25px}.rulers{display:flex;flex-direction:column;gap:20px;margin:35px auto 25px;max-width:620px}.ruler-choice{border:1.5px solid #d1dac8;border-radius:20px;background:#fffdf7;padding:18px 22px 15px;text-align:center}.ruler-choice svg{margin-bottom:4px}.ruler-choice span{font-weight:650;font-size:18px}.small-note{font-size:15px;color:#6c796a;text-align:center}.report-stage{max-width:780px;margin:auto}.report-stage>h1{margin-bottom:30px}.worksheet{background:#fffef9;padding:32px 38px;border-radius:20px;border:1px solid #e1e4d7;box-shadow:0 6px 25px #77725a08}.sheet-heading{padding-bottom:25px;border-bottom:1px solid #e0e5d8}.sheet-heading .subtle{margin-top:8px}.subtle{color:var(--muted);font-size:14px}.worksheet h3{margin-top:25px;margin-bottom:9px}.worksheet p{font-size:16px}.worksheet table{border-collapse:collapse;width:100%;text-align:left;font-size:15px;font-variant-numeric:tabular-nums}.worksheet th,.worksheet td{padding:10px 12px;border-bottom:1px solid #e5e8dc}.worksheet th{font-size:13px;color:#6d7c66;font-weight:550;background:#f0f3e9}.written{white-space:pre-wrap;overflow-wrap:anywhere}.answer-pair{display:flex;gap:12px;margin:24px 0}.answer-pair>div{flex:1;background:#f0f3e9;padding:15px 19px;border-radius:12px}.answer-pair dt{font-size:13px;color:#718069}.answer-pair dd{margin:8px 0 0;font-size:18px;font-weight:650}.brief-answers{margin:24px 0 0;font-size:14px}.brief-answers>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #e4e8dc;padding:12px 0}.brief-answers dd{margin:0;font-weight:600;white-space:nowrap}.identity{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0 24px}#submit{width:100%;min-height:60px}.text-button{display:block;padding:16px 20px;margin:13px auto;background:none;font-size:15px;text-decoration:underline;text-underline-offset:4px}.text-link{font-size:14px;text-underline-offset:4px}.receipt{display:flex;align-items:center;gap:22px;margin-bottom:28px}.receipt-check{width:60px;height:60px;border-radius:50%;background:#dce8d0;font-size:30px;display:grid;place-items:center}.receipt h1{font-size:29px}.receipt p{font-size:15px;margin:5px 0}.receipt small{font-size:12px;color:#76816e}.feedback{padding:25px 0}.feedback h2{font-size:18px}.feedback p{margin:13px 0;white-space:pre-wrap;overflow-wrap:anywhere}.feedback .secondary{min-height:42px;font-size:14px;padding:8px 16px}.answer-note{background:#edf2e5;padding:18px 22px;border-radius:16px;margin:10px 0}.answer-note summary{font-weight:650;cursor:pointer}.answer-note p{margin-top:12px;font-size:15px}.notice{margin:15px auto;max-width:780px;padding:16px 20px;border-radius:14px;color:#86512c;background:#faecd8;line-height:1.55;overflow-wrap:anywhere}.notice[hidden]{display:none}dialog{border:1px solid #dde1d3;box-shadow:0 22px 80px #203e3426;border-radius:24px;background:#faf8f1;color:var(--ink);padding:35px 30px;max-height:88svh;width:min(830px,calc(100% - 30px))}dialog::backdrop{background:#223c344d;backdrop-filter:blur(4px)}.dialog-close{position:sticky;float:right;top:0;margin:-20px -16px 0 0;background:#f0f0e4;font-size:28px;z-index:1}.lesson-list{margin:25px 0;display:grid;gap:12px}.lesson-item{background:#eff2e6;border-radius:15px;text-align:left;padding:20px;display:grid;gap:8px}.lesson-item strong{font-size:18px}.lesson-item span{font-size:14px;color:#6d7868}.loading,.error-screen{text-align:center;margin:20svh auto;max-width:650px;padding:25px}.error-screen p{margin:25px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-70px;left:15px;z-index:10;padding:15px;background:white}.skip:focus{top:15px}.teacher-shell{max-width:1180px;margin:auto;padding:30px}.teacher-top{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #dce2d3;padding:10px 0 25px;margin-bottom:30px}.teacher-top h1{font-size:26px}.teacher-links{display:flex;gap:22px;align-items:center}.teacher-links button{background:none;font-size:14px}.login-panel{max-width:430px;margin:14svh auto;padding:35px;border:1px solid #d9dfd0;background:#fffef9;border-radius:25px}.login-panel h1{font-size:27px;margin-bottom:28px}.login-panel .primary{width:100%;margin:24px 0}.login-panel p{font-size:13px;color:#6c7866}.teacher-grid{display:grid;grid-template-columns:285px 1fr;gap:30px;align-items:start}.submission-list{display:grid;gap:10px}.submission-item{padding:18px;background:#edf1e4;border:1.5px solid transparent;border-radius:14px;text-align:left;display:grid;gap:7px}.submission-item.selected{border-color:#618366;background:#e4ecda}.submission-item strong{font-size:17px}.submission-item span{font-size:13px;color:#6c7766}.teacher-detail{min-width:0}.empty{padding:70px 20px;text-align:center;color:#788370}.teacher-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.teacher-actions .secondary{font-size:14px;min-height:43px;padding:10px 18px}.import-panel{padding:24px 0 35px;border-bottom:1px solid #dce2d3;margin-bottom:30px}.import-panel summary{cursor:pointer;font-weight:650}.import-panel p{margin:15px 0;font-size:14px;max-width:720px}.import-panel input[type=file]{max-width:600px;font-size:14px}.import-panel label{margin:15px 0}.import-panel input[type=checkbox]{width:18px;margin-right:8px;vertical-align:middle}.import-panel .secondary{font-size:14px;margin-right:12px}.feedback-form{margin-top:25px}.feedback-form textarea{margin:12px 0}.teacher-detail .student-heading{margin-bottom:20px}.student-heading p{font-size:14px;color:#718068;margin-top:6px}.teacher-detail .worksheet{padding:25px}.teacher-detail .worksheet h2{font-size:20px}
@media(min-width:1500px){.stage-2,.stage-3{padding-top:35px}.scene-wrap{max-width:1050px}}
@media(max-width:700px){.app-shell{padding:0 20px}.topbar{gap:7px;padding:18px 0}.activity-title{font-size:18px;gap:5px}.step-count{font-size:18px}.step-count span{font-size:14px}.record-button{padding-left:12px}.record-button span{display:none}.stage{padding-top:30px}.source-condition{gap:17px;padding:18px 14px}.given-range{font-size:18px}.given-hand svg{width:38px;height:42px}.given-hand strong{font-size:20px}.given-hand{gap:9px}.given-range span{padding:0 3px}.claim{gap:12px;padding:14px 0}.claim p{font-size:16px}.claim-letter{width:29px;height:29px;font-size:14px}.answer-options{gap:8px}.answer-options .choice{flex:1 1 calc(33% - 8px);font-size:16px;padding:10px;min-height:49px}.source-note{margin-top:20px}.bottom-bar{padding:22px 0;gap:15px}.bottom-bar .primary,.bottom-bar .secondary{min-width:115px;padding:12px 21px}.save-status{font-size:11px;max-width:160px}.scene-heading{padding-left:8px}.stage-2,.stage-3{padding-top:30px}.scene-wrap{margin-top:20px}.dimension{font-size:40px}.segment-label{font-size:34px}.count{font-size:51px}.count-unit{font-size:41px}.cat{width:80px;left:-11px;bottom:-100px}.measure-controls{padding-left:80px;grid-template-columns:28px 1fr 71px;gap:10px;margin-top:34px}.hand-label svg{width:29px}.measure-controls output{font-size:23px;padding:8px 4px}.measure-controls .measure{grid-column:1/4;min-height:56px;font-size:22px;margin-top:16px;width:100%}.experiment{padding-bottom:15px}.hands-compare{gap:18px;margin:45px 0}.hands-compare>div{width:118px}.hands-compare svg{width:110px;height:120px}.hands-compare>.smaller-hand svg{width:90px;height:120px;padding-top:25px}.center-stage{padding-top:20px}.choice{font-size:16px;padding:12px 15px;min-height:52px}.comparison{margin:35px -20px 30px}.small-label{font-size:37px}.interval{margin:35px -15px 27px}.axis-note{font-size:28px}.prompt{font-size:17px;text-align:left}.rulers{gap:15px;margin:28px 0 22px}.ruler-choice{padding:12px}.small-note{font-size:13px;text-align:left}.worksheet{padding:22px 20px}.worksheet p{font-size:15px}.worksheet table{font-size:14px}.worksheet th,.worksheet td{padding:10px 8px}.answer-pair dd{font-size:16px}.answer-pair>div{padding:13px}.brief-answers>div{gap:12px;font-size:12px}.identity{gap:12px}.identity input{padding:12px 10px;font-size:16px}.receipt{gap:15px}.receipt h1{font-size:25px}.receipt-check{width:46px;height:46px;font-size:23px;flex:none}.receipt small{font-size:10px}.sheet-heading h2{font-size:21px}dialog{padding:30px 16px}.dialog-close{margin-right:-5px}.teacher-shell{padding:20px}.teacher-top{gap:10px}.teacher-top h1{font-size:23px}.teacher-links{gap:15px}.teacher-grid{grid-template-columns:1fr;gap:25px}.submission-list{max-height:280px;overflow:auto}.teacher-detail .worksheet{padding:22px 18px}.teacher-actions h2{font-size:20px}.identity{grid-template-columns:1fr 1fr}.notice{font-size:14px}.login-panel{padding:27px 23px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white}.topbar,.progress,.bottom-bar,button,.identity,.notice,.teacher-top,.import-panel,.submission-list,.teacher-actions,.feedback-form{display:none!important}.app-shell,.teacher-shell{padding:0}.stage{padding:0}.worksheet{box-shadow:none;border:0;padding:0}.teacher-grid{display:block}.report-stage{max-width:none}.receipt{break-inside:avoid}.worksheet table tr{break-inside:avoid}}
.hands-compare>.smaller-hand svg{width:calc(160px * var(--hand-ratio,.75));padding-top:0}.pending-note{margin-top:24px;padding:16px;background:#eef0e2;border-radius:12px;font-size:14px}.segment-label{paint-order:stroke;stroke:#afbd9433;stroke-width:2}
@media(max-width:700px){.hands-compare>.smaller-hand svg{width:calc(110px * var(--hand-ratio,.75));padding-top:0}.segment-label{font-size:38px}}
