:root{--paper:#fbfdfc;--rule:#d3e5ef;--ink:#2b2f36;--ink-soft:#5b6470;--pencil:#9aa3ad;--board:#2f5d50;--board-deep:#25493f;--chalk:#f6f3e6;--chalk-yellow:#ffe27a;--wood:#c99a5b;--wood-deep:#a67a3f;--red:#e5412d;--red-deep:#c2311f;--yellow:#ffc83d;--marker:#ffee8c;--math:#2f7fd6;--japanese:#d9486e;--social:#2f9a5c;--english:#e9821c;--font-display:"Yusei Magic", "Zen Maru Gothic", sans-serif;--font-text:"Klee One", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;--font-body:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;--step--1:.9rem;--step-0:1.0625rem;--step-1:1.3rem;--step-2:1.65rem;--step-3:2.1rem;--line:2.5px solid var(--ink);--paper-line:1.5px solid #a9b1ba;--paper-shadow:2px 3px 0 #2b2f361a;--r-paper:3px;--r-btn:14px}*,:before,:after{box-sizing:border-box}body{color:var(--ink);font-family:var(--font-body);font-weight:500;font-size:var(--step-0);word-break:keep-all;overflow-wrap:anywhere;line-break:strict;background-color:var(--paper);background-image:linear-gradient(transparent calc(100% - 1.5px), var(--rule) calc(100% - 1.5px));-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background-size:100% 32px;margin:0;line-height:1.8}button,input{font:inherit;color:inherit}button{touch-action:manipulation}:focus-visible{outline:3.5px solid var(--ink);outline-offset:3px}h1,h2,h3,p,ul,ol{margin:0}rt{font-family:var(--font-body);font-weight:700}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{max-width:47rem;margin:0 auto;padding:0 16px 88px}.page-home{max-width:66rem}main{flex-direction:column;gap:28px;display:flex}@media (width>=700px){.page{padding-inline:28px}}.site-header{justify-content:space-between;align-items:center;gap:12px;padding:14px 0 12px;display:flex}.logo{min-height:48px;font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.06em;color:var(--ink);border:var(--line);background:repeating-linear-gradient(92deg,#0000 0 17px,#784e1c21 17px 18.5px),#e3bf88;border-radius:5px;align-items:center;gap:8px;padding:2px 20px 4px;text-decoration:none;display:inline-flex;position:relative}.logo:before,.logo:after{content:"";background:var(--ink);opacity:.7;border-radius:50%;width:5px;height:5px}.home-link{min-height:48px;color:var(--ink);border-radius:10px;align-items:center;gap:6px;padding:0 10px;font-weight:700;text-decoration:none;display:inline-flex}.home-link svg{width:26px;height:26px}@media (hover:hover){.home-link:hover{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}}.title{font-family:var(--font-display);font-weight:400;font-size:var(--step-2);line-height:1.4}.tape{font-size:var(--step-0);clip-path:polygon(0 0,100% 0,calc(100% - 4px) 17%,100% 34%,calc(100% - 4px) 50%,100% 67%,calc(100% - 4px) 84%,100% 100%,0 100%,4px 84%,0 67%,4px 50%,0 34%,4px 17%);background:#ffc83d99;margin:0 0 14px -4px;padding:3px 20px 4px;font-weight:700;line-height:1.6;display:inline-block;transform:rotate(-1.2deg)}.tape-green{background:#7ec4a099;transform:rotate(.8deg)}.tape-blue{background:#8ebeec99;transform:rotate(-.6deg)}.btn{min-height:54px;font-family:var(--font-body);text-align:center;color:var(--ink);background:var(--yellow);border:var(--line);border-radius:var(--r-btn);box-shadow:0 4px 0 var(--ink);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;padding:8px 24px;font-weight:700;line-height:1.4;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translateY(4px)}.btn:disabled{color:var(--ink-soft);border-color:var(--pencil);box-shadow:0 4px 0 var(--pencil);cursor:not-allowed;background:#f3ead0}.btn small{font-size:var(--step--1);font-weight:500}.btn-quiet{background:#fff}.btn-manabu{color:var(--chalk);background:var(--board);flex-direction:row;gap:10px}.btn-manabu svg{flex:none;width:38px;height:38px;margin:-4px 0 -4px -8px}@media (hover:hover){.btn:hover:not(:disabled){filter:brightness(1.04)}.btn-quiet:hover:not(:disabled){filter:none;background:#fffbe6}}.link-btn{min-height:48px;color:var(--ink);text-underline-offset:5px;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 4px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.actions{flex-wrap:wrap;gap:16px 14px;display:flex}.board{margin-top:44px;position:relative}.board-peek{width:62px;position:absolute;top:-59px;right:clamp(22px,9%,96px)}.board-peek-hands{z-index:2;width:62px;height:12px;position:absolute;top:-7px;right:clamp(22px,9%,96px)}.board-peek-hands:before,.board-peek-hands:after{content:"";border:2.2px solid var(--ink);background:#fff;border-radius:50% 50% 45% 45%;width:13px;height:11px;position:absolute;top:0}.board-peek-hands:before{left:-5px}.board-peek-hands:after{right:-5px}.board-frame{--frame:8px;z-index:1;padding:var(--frame) var(--frame) 0;background:repeating-linear-gradient(91deg, transparent 0 23px, #784e1c1f 23px 24.5px), var(--wood);border:var(--line);border-radius:8px;position:relative}.board-surface{color:var(--chalk);background:radial-gradient(ellipse 34% 46% at 74% 30%, #ffffff12, transparent 70%), radial-gradient(ellipse 30% 40% at 16% 84%, #ffffff0d, transparent 70%), linear-gradient(102deg, transparent 0 40%, #ffffff09 41% 47%, transparent 48%), var(--board);border:var(--line);border-radius:3px;grid-template-columns:minmax(0,1fr) auto;gap:18px 14px;padding:20px 14px 30px;display:grid}.board-title{font-family:var(--font-display);letter-spacing:.02em;place-self:start;padding-bottom:12px;font-size:clamp(1.7rem,1.05rem + 3.3vw,2.9rem);font-weight:400;line-height:1.35;position:relative}.board-title:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 9' preserveAspectRatio='none'%3E%3Cpath d='M2 5.500 C40 2 70 7.500 110 4.500 S190 2.500 230 5.500 S280 4 298 3.500' fill='none' stroke='%23ffe27a' stroke-width='3' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;width:100%;height:9px;position:absolute;bottom:0;left:0}.board-date{writing-mode:vertical-rl;font-family:var(--font-display);font-size:var(--step-0);letter-spacing:.1em;white-space:nowrap;justify-self:end;line-height:1.3}.tcy{-webkit-text-combine:horizontal;text-combine-upright:all}.board-foot{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.board-grades{flex:auto;min-width:0;margin-inline:-8px}.board-label{font-family:var(--font-display);font-weight:400;font-size:var(--step-0);color:var(--chalk-yellow);margin:0 8px 8px;line-height:1.4}.grade-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;max-width:24.5rem;display:grid}.grade-btn{height:50px;font-family:var(--font-display);font-size:var(--step-1);color:var(--chalk);cursor:pointer;background:0 0;border:2px solid #f6f3e699;border-radius:999px;justify-content:center;align-items:baseline;padding:11px 0 0;line-height:1;transition:transform 80ms;display:flex}.grade-btn small{font-size:.72em}.grade-btn:active{transform:scale(.93)}.grade-btn[aria-pressed=true]{color:var(--ink);background:var(--yellow);border:var(--line);box-shadow:0 3px #0f1e1a8c}@media (hover:hover){.grade-btn[aria-pressed=false]:hover{border-color:var(--chalk);background:#f6f3e61f}}.board-duty{font-family:var(--font-display);align-items:baseline;gap:10px;margin-left:auto;line-height:1.5;display:flex}.board-duty span{font-size:var(--step--1);color:var(--chalk-yellow)}.board-duty b{min-width:4em;font-weight:400;font-size:var(--step-1);text-align:center;border-bottom:2px solid #f6f3e6b3;padding:0 4px}.board :focus-visible{outline-color:var(--chalk-yellow)}.board-tray{height:15px;margin:0 calc(var(--frame) * -1);background:var(--wood-deep);border-top:var(--line);border-radius:0 0 5px 5px;position:relative}.board-tray i{border:1.8px solid var(--ink);border-radius:3px;height:9px;position:absolute;bottom:calc(100% + 2.5px)}.board-tray .chalk-w{background:#fff;width:30px;left:9%}.board-tray .chalk-y{background:var(--chalk-yellow);width:20px;left:calc(9% + 36px)}.board-tray .chalk-p{transform-origin:0 100%;background:#ffb3ad;width:25px;left:calc(9% + 64px);transform:rotate(-6deg)}.board-tray .eraser{background:linear-gradient(#6f8fc9 0 48%, var(--ink) 48% 58%, #efe8d6 58%);border-width:2px;width:52px;height:17px;right:7%}.board-doodles{display:none}@media (width>=700px){.board-frame{--frame:10px}.board-surface{gap:26px 24px;padding:30px 32px 40px;position:relative}.board-title{grid-area:1/1}.board-date{font-size:var(--step-1);grid-area:1/2/span 2}.board-foot{grid-area:2/1}.board-grades,.board-label{margin-inline:0}.grade-picker{gap:10px}.grade-btn{height:56px;padding-top:13px}}.home-columns{gap:36px 44px;display:grid}.home-aside{gap:32px;display:grid}@media (width>=1000px){.board-doodles{opacity:.6;pointer-events:none;width:240px;display:block;position:absolute;top:30px;right:96px}.home-columns{grid-template-columns:minmax(0,1fr) 21rem;align-items:start}}.subject-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:26px 20px;margin-top:12px;display:grid}.subject-card{--subject:var(--ink);--subject-ink:var(--ink);border:var(--paper-line);border-radius:var(--r-paper);box-shadow:var(--paper-shadow);background-color:#fff;flex-direction:column;gap:8px;padding:14px 16px 20px;display:flex;position:relative}.subject-head{justify-content:space-between;align-items:flex-end;min-height:62px;display:flex}.subject-name{font-family:var(--font-display);font-weight:400;font-size:var(--step-3);color:var(--subject-ink);line-height:1.25}.subject-name rt{letter-spacing:.14em;color:var(--ink);font-size:.36em}.subject-picture{filter:drop-shadow(2px 2px #2b2f361a);flex:none;width:84px;height:84px;margin:-34px -6px -4px 0;transform:rotate(5deg)}.progress svg{width:100%;height:auto;display:block}.subject-progress{font-size:var(--step--1);color:var(--ink-soft);line-height:1.6}.subject-progress b{font-size:var(--step-0);color:var(--ink)}.subject-card .btn,.subject-card .coming-soon{margin-top:auto}.subject-math{--subject:var(--math);--subject-ink:#1f5fae;background-image:radial-gradient(circle at 15px 26px, var(--paper) 0 5.5px, #a9b1ba 5.5px 7px, transparent 7px), radial-gradient(circle at 15px 50%, var(--paper) 0 5.5px, #a9b1ba 5.5px 7px, transparent 7px), radial-gradient(circle at 15px calc(100% - 26px), var(--paper) 0 5.5px, #a9b1ba 5.5px 7px, transparent 7px), linear-gradient(#dcebf8 1.2px, transparent 1.2px), linear-gradient(90deg, #dcebf8 1.2px, transparent 1.2px);background-position:0 0,0 0,0 0,0 9px,9px 0;background-size:auto,auto,auto,17px 17px,17px 17px;padding-left:34px}.subject-japanese{--subject:var(--japanese);--subject-ink:#b52f55;box-shadow:inset 0 0 0 5px #fffaf0, inset 0 0 0 6.2px #dcae95, var(--paper-shadow);background-color:#fffaf0;border-color:#c98b6b}.subject-social{--subject:var(--social);--subject-ink:#1f7a45;background-color:#f4f8e8;background-image:linear-gradient(90deg,#0000 calc(33.3% - 1px),#2b2f361a 33.3%,#ffffffe6 calc(33.3% + 1.5px),#0000 calc(33.3% + 3px)),linear-gradient(90deg,#0000 calc(66.6% - 1px),#2b2f361a 66.6%,#ffffffe6 calc(66.6% + 1.5px),#0000 calc(66.6% + 3px)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='150' viewBox='0 0 220 150'%3E%3Cg fill='none' stroke='%23d5e2bf' stroke-width='1.300'%3E%3Cpath d='M-10 40 C40 10 80 60 130 34 S200 20 240 46'/%3E%3Cpath d='M-10 62 C40 34 84 82 134 58 S200 44 240 70'/%3E%3Cpath d='M-10 122 C30 100 70 140 120 118 S190 96 240 126'/%3E%3Cellipse cx='168' cy='104' rx='30' ry='16'/%3E%3Cellipse cx='168' cy='104' rx='17' ry='8'/%3E%3C/g%3E%3C/svg%3E");border-color:#9db089}.subject-english{--subject:var(--english);--subject-ink:#b85f08;background-image:linear-gradient(90deg,#0000 9px,#f6c3bb 9px 10.5px,#0000 10.5px)}.coming-soon{min-height:54px;font-size:var(--step--1);color:var(--ink-soft);align-items:center;gap:10px;font-weight:700;line-height:1.5;display:flex}.coming-soon svg{flex:none;width:40px;height:40px}.lesson-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:18px;padding:0;list-style:none;display:grid}.lesson-link{height:100%;color:var(--chalk);background:var(--wood);border:var(--line);box-shadow:0 4px 0 var(--ink);border-radius:7px;padding:6px;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:block}.lesson-link:active{box-shadow:0 0 0 var(--ink);transform:translateY(4px)}.lesson-link-board{background:var(--board);border:2px solid var(--ink);border-radius:2px;align-items:center;gap:14px;height:100%;padding:12px 16px 14px 12px;display:flex}.lesson-link svg{flex:none;width:58px;height:58px}.lesson-link-text{flex-direction:column;gap:2px;display:flex}.lesson-link strong{font-family:var(--font-display);font-weight:400;font-size:var(--step-1);line-height:1.4}.lesson-link-text span{font-size:var(--step--1);line-height:1.6}@media (hover:hover){.lesson-link:hover .lesson-link-board{background:#356a5b}}.note-line{font-size:var(--step--1);color:var(--ink-soft);align-items:center;gap:10px;font-weight:700;display:flex}.note-line svg{flex:none;width:40px;height:40px}.account-card{border:var(--paper-line);border-radius:var(--r-paper);box-shadow:var(--paper-shadow);background:#fff}.account-tabs{border-bottom:var(--paper-line);background:#eef2f5;border-radius:2px 2px 0 0;gap:4px;padding:8px 10px 0;display:flex}.account-tabs button{min-height:48px;color:var(--ink-soft);border:var(--paper-line);cursor:pointer;background:#dfe5ea;border-radius:10px 10px 0 0;padding:0 18px;font-weight:700;position:relative;top:1.5px}.account-tabs button[aria-pressed=true]{color:var(--ink);background:#fff;border-bottom-color:#fff}.account-tabs button:focus-visible{outline-offset:-5px}.account-body{padding:16px 16px 20px}.account-lead{font-size:var(--step--1);line-height:1.7}.account-form{flex-direction:column;align-items:flex-start;gap:14px;margin-top:12px;display:flex}.account-row{flex-wrap:wrap;gap:12px 16px;width:100%;display:flex}.account-field{font-size:var(--step--1);flex-direction:column;flex:12rem;gap:2px;font-weight:700;display:flex}.account-field small{color:var(--ink-soft);font-weight:500}.account-field input{border:var(--line);background:#fffdf2;border-radius:8px;width:100%;min-height:54px;padding:0 14px;font-size:1.15rem;font-weight:700;box-shadow:inset 0 3px #2b2f3614}.account-field input:focus-visible{background:#fff}.account-pin input{letter-spacing:.45em;max-width:11rem;font-size:1.4rem}.account-note{font-size:var(--step--1);color:var(--ink-soft);line-height:1.7}.form-error,.notice{color:#a8251a;align-items:flex-start;gap:8px;font-weight:700;line-height:1.6;display:flex}.form-error:before,.notice:before{content:"！";width:1.6em;height:1.6em;font-family:var(--font-display);color:#fff;background:var(--red-deep);border-radius:50%;flex:none;place-items:center;font-weight:400;line-height:1;display:grid}.notice{border:var(--paper-line);border-radius:var(--r-paper);box-shadow:var(--paper-shadow);background:#fff;padding:12px 14px 6px}.notice .link-btn{display:block}.account-in{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.nametag{border:var(--line);min-width:11rem;max-width:100%;box-shadow:var(--paper-shadow);background:#fff;border-radius:8px;flex-direction:column;flex:none;margin-top:10px;display:flex;position:relative;transform:rotate(-2deg)}.nametag:before{content:"";border:2.2px solid var(--ink-soft);background:linear-gradient(var(--ink-soft), var(--ink-soft)) no-repeat 6px 50% / 30px 2px;border-radius:7px 3px 3px 7px;width:46px;height:12px;margin-left:-23px;position:absolute;top:-11px;left:50%}.nametag-school{font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.2em;text-align:center;background:var(--yellow);border-bottom:var(--line);border-radius:5px 5px 0 0;padding:1px 12px 2px}.nametag-name{font-family:var(--font-text);font-weight:600;font-size:var(--step-2);text-align:center;padding:6px 16px 8px;line-height:1.4}.account-in-text{font-size:var(--step--1);flex:11rem;line-height:1.7}.loading{color:var(--ink-soft);flex-direction:column;align-items:center;gap:4px;padding:48px 0;font-weight:700;display:flex}.loading svg{width:200px;height:56px;overflow:visible}.loading-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.8s linear infinite loading-line}.loading-pencil{animation:1.8s linear infinite loading-pencil}@keyframes loading-line{0%{stroke-dashoffset:1px}78%,to{stroke-dashoffset:0}}@keyframes loading-pencil{0%{transform:translate(0)}13%{transform:translate(20px,-4px)}26%{transform:translate(40px)}39%{transform:translate(60px,-4px)}52%{transform:translate(80px)}65%{transform:translate(100px,-4px)}78%,to{transform:translate(120px)}}.state{justify-items:center;gap:4px;padding:20px 0 8px;display:grid}.state .enpitsu{width:132px;height:154px}.state-memo{text-align:center;background:linear-gradient(135deg,#dcedfb 0 calc(100% - 26px),#b9d6f0 calc(100% - 26px));flex-direction:column;align-items:center;gap:14px;width:min(100%,30rem);padding:30px 22px 28px;display:flex;position:relative;transform:rotate(-.8deg);box-shadow:3px 4px #2b2f361f}.state-memo:before{content:"";background:#ffc83db3;width:92px;height:24px;margin-left:-46px;position:absolute;top:-11px;left:50%;transform:rotate(2deg)}.state-memo p{font-family:var(--font-text);font-weight:600;line-height:1.8}.state-memo .actions{justify-content:center;margin-top:4px}@media (width>=700px){.state{grid-template-columns:auto minmax(0,30rem);justify-content:center;align-items:end;gap:12px;padding-top:44px}}.print{--subject:var(--ink);--subject-tint:#e3e7ea;border:var(--paper-line);border-radius:var(--r-paper);box-shadow:var(--paper-shadow);background:#fff;position:relative}.print-math{--subject:var(--math);--subject-tint:#cfe4fb}.print-japanese{--subject:var(--japanese);--subject-tint:#fbd5df}.print-social{--subject:var(--social);--subject-tint:#cdecd9}.print-english{--subject:var(--english);--subject-tint:#fde0c0}.print-head{border-bottom:3px double var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:8px 16px;margin:0 16px;padding:14px 0 12px;display:grid}.print-subject{font-weight:700;line-height:1.7}.print-subject rt{font-size:.5em}.print-unit{background:linear-gradient(transparent 52%, var(--subject-tint) 52% 94%, transparent 94%);-webkit-box-decoration-break:clone;box-decoration-break:clone;margin-left:.6em;padding:0 .25em}.print-count{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.7}.print-count b{font-family:var(--font-display);font-weight:400;font-size:var(--step-2);line-height:1}.marks{flex-wrap:wrap;grid-column:1/-1;gap:6px 7px;padding:0;list-style:none;display:flex}.marks li{width:24px;height:24px;position:relative}.marks li:before{content:"";background:#c3cad1;border-radius:50%;position:absolute;inset:8.5px}.marks li[data-state=now]:before{background:var(--yellow);border:2px solid var(--ink);inset:3px}.marks li[data-state=correct]:before,.marks li[data-state=wrong]:before{content:none}.marks svg{width:100%;height:100%;display:block}.print-body{flex-direction:column;align-items:flex-start;gap:22px;padding:22px 16px 26px;display:flex}.prompt{font-family:var(--font-text);font-size:clamp(1.3rem,1.08rem + 1.3vw,1.8rem);font-weight:600;line-height:1.75}.choices{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:16px 14px;width:100%;display:grid}.choices[data-short]{grid-template-columns:repeat(2,minmax(0,1fr))}.choice{min-height:74px;font-family:var(--font-text);color:var(--ink);border:var(--line);border-radius:var(--r-btn);box-shadow:0 4px 0 var(--ink);cursor:pointer;background:#fff;align-items:center;gap:10px;padding:8px 16px 8px 12px;font-size:clamp(1.25rem,1.1rem + .9vw,1.6rem);font-weight:600;line-height:1.5;transition:transform 80ms,box-shadow 80ms;display:flex;position:relative}.choice-label{width:34px;height:34px;font-family:var(--font-body);color:var(--ink-soft);border:2px solid var(--pencil);border-radius:50%;flex:none;place-items:center;font-size:1rem;font-weight:700;line-height:1;display:grid}.choice-text{text-align:center;flex:1;min-width:0;padding-right:22px}.choice[data-long] .choice-text{text-align:left;padding-right:0;font-size:.86em}@media (hover:hover){.choice:hover:not(:disabled){background:#fffbe6}}.choice:active:not(:disabled),.choice[data-state=chosen]{box-shadow:0 0 0 var(--ink);transform:translateY(4px)}.choice:disabled{cursor:default;box-shadow:0 0 0 var(--ink);transform:translateY(4px)}.choice:disabled:not([data-state]){color:var(--ink-soft);border-color:var(--pencil)}.choice[data-state=chosen]{background:#fffbe6}.choice[data-state=correct] .choice-label{color:var(--red-deep);border-color:var(--red)}.choice[data-state=wrong]{color:var(--ink-soft);background:repeating-linear-gradient(-55deg,#fff 0 7px,#eceff2 7px 9px);animation:.32s ease-out wobble}.choice[data-state=answer]{background:linear-gradient(var(--marker), var(--marker)) no-repeat left / 100% 100% #fff;animation:.42s ease-out .26s backwards marker-sweep}.choice-mark{flex:none;width:30px;height:30px;margin-left:-22px}.choice[data-long] .choice-mark{margin-left:0}@keyframes wobble{20%{transform:translate(-6px,4px)}45%{transform:translate(5px,4px)}70%{transform:translate(-3px,4px)}}@keyframes marker-sweep{0%{background-size:0 100%}}.pen-circle{pointer-events:none;width:calc(100% + 14px);height:calc(100% + 18px);position:absolute;inset:-9px -7px;overflow:visible}.pen-circle path{fill:none;stroke:var(--red);stroke-width:3.4px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:2400;stroke-dashoffset:2400px;animation:1.1s linear forwards pen-draw}@keyframes pen-draw{to{stroke-dashoffset:0}}.input-answer{flex-direction:column;align-items:flex-start;gap:20px;width:100%;display:flex}.input-fields{flex-wrap:wrap;align-items:flex-end;gap:18px 28px;display:flex}.input-field{font-family:var(--font-text);font-weight:600;font-size:var(--step-1);flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.input-box{align-items:center;gap:8px;display:inline-flex;position:relative}.input-box input{text-align:center;border:var(--line);background:#fffdf2;border-radius:6px;width:4.6em;min-height:66px;padding:0 8px;font-size:clamp(1.65rem,1.4rem + 1vw,2rem);box-shadow:inset 0 3px #2b2f3614}.input-fields[data-mode=text] .input-box input{width:min(100%,9em)}.input-box input:focus-visible{background:#fff}.input-box input:read-only{box-shadow:none;background:#fff}.input-fields[data-result=wrong] .input-box input{color:var(--ink-soft);border-color:var(--pencil);background:repeating-linear-gradient(-55deg,#fff 0 7px,#eceff2 7px 9px)}.input-submit{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.input-hint{font-size:var(--step--1);color:var(--ink-soft)}.frac{vertical-align:middle;font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;margin:0 .15em;line-height:1.15;display:inline-flex}.frac span:first-child{border-bottom:.1em solid;padding:0 .3em}.hanamaru{pointer-events:none;flex:none;width:104px;height:104px;transform:rotate(-8deg)}.hanamaru path{fill:none;stroke:var(--red);stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:.92;animation:.9s ease-out .15s forwards hanamaru-draw}@keyframes hanamaru-draw{to{stroke-dashoffset:0}}.feedback{border-top:2px dashed #c3cad1;flex-direction:column;gap:14px;margin:0 16px;padding:18px 0 26px;display:flex}.feedback-head{align-items:center;gap:6px 14px;min-height:104px;display:flex}.feedback-head .enpitsu{flex:none;width:84px;height:98px}.feedback-title{font-family:var(--font-display);transform-origin:0;font-size:clamp(2rem,1.6rem + 2vw,2.7rem);font-weight:400;line-height:1.2;transform:rotate(-3deg)}.feedback[data-correct=true] .feedback-title{color:var(--red);animation:.32s cubic-bezier(.3,1.5,.6,1) .5s backwards pop-in}@keyframes pop-in{0%{opacity:0;transform:rotate(-3deg)scale(.6)}}.feedback-answer{font-family:var(--font-text);font-weight:600;font-size:var(--step-1);line-height:2}.feedback-answer strong{vertical-align:middle;background:var(--marker);padding:.05em .4em;font-size:1.15em;display:inline-block}.feedback-text{font-family:var(--font-text);font-size:clamp(1.1rem,1rem + .5vw,1.25rem);font-weight:600;line-height:1.9}.feedback .actions{margin-top:6px}.feedback-note{font-size:var(--step--1);color:var(--ink-soft);line-height:1.7}.print>.form-error,.print-body .form-error{margin-top:-4px}.result-body{align-items:center;gap:20px 28px;padding:26px 16px 8px;display:grid}.result-score{font-family:var(--font-display);font-weight:400;font-size:var(--step-2);line-height:1.5}.result-score b{color:var(--red);margin:0 .08em;font-size:1.9em;font-weight:400;line-height:1}.result-main{flex-direction:column;gap:14px;display:flex}.result-main .marks li{width:34px;height:34px}.result-message{font-family:var(--font-text);font-weight:600;font-size:var(--step-1);line-height:1.8}.result-award{justify-content:center;align-items:center;gap:8px;min-height:170px;display:flex;position:relative}.result-award .hanamaru{width:150px;height:150px}.stamp{flex:none;width:158px;height:158px;animation:.38s cubic-bezier(.2,1.4,.5,1) .3s backwards stamp-in;transform:rotate(-9deg)}.result-award .hanamaru+.stamp{animation-delay:1.15s}@keyframes stamp-in{0%{opacity:0;transform:rotate(-9deg)scale(1.7)}60%{opacity:1}}.result .actions{padding:14px 16px 28px}@media (width>=700px){.print-head,.feedback{margin-inline:30px}.print-body{padding:28px 30px 32px}.result-body{grid-template-columns:minmax(0,1fr) auto;padding:30px 30px 8px}.result .actions{padding:14px 30px 32px}}.lesson{flex-direction:column;gap:22px;display:flex}.lesson-head{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.lesson-kicker{font-family:var(--font-display);letter-spacing:.06em;color:var(--chalk);background:var(--board);border:2px solid var(--ink);border-radius:4px;padding:0 12px 2px}.lesson-text{font-family:var(--font-text);border:var(--paper-line);border-radius:var(--r-paper);box-shadow:var(--paper-shadow);background:#fff;padding:18px 20px 20px;font-size:clamp(1.0625rem,1rem + .4vw,1.2rem);font-weight:600;line-height:1.9}.lesson-text strong{background:linear-gradient(transparent 55%, var(--marker) 55% 94%, transparent 94%)}.lesson-text h2{font-family:var(--font-display);font-weight:400;font-size:var(--step-1);margin-bottom:4px}.lesson-text ul{padding-left:1.3em}.lesson-text li+li{margin-top:6px}.lesson-board,.lesson-summary{color:var(--chalk);background:radial-gradient(ellipse 34% 60% at 78% 30%, #ffffff0f, transparent 70%), var(--board);border:var(--line);box-shadow:0 0 0 7px var(--wood), 0 0 0 9.5px var(--ink);border-radius:3px;margin:9.5px;padding:16px 20px 18px}.lesson-summary strong{background:0 0}.lesson-summary h2{color:var(--chalk-yellow);border:2px solid var(--chalk-yellow);border-radius:2px;margin-bottom:10px;padding:0 12px 2px;display:inline-block}.lesson-summary li::marker{color:var(--chalk-yellow)}.stage{aspect-ratio:4/3;border:var(--line);width:calc(100% - 19px);max-height:60vh;box-shadow:0 0 0 7px #e3bf88, 0 0 0 9.5px var(--ink);cursor:grab;touch-action:none;background:#dcecf5;border-radius:3px;margin:9.5px;overflow:hidden}.stage:active{cursor:grabbing}.stage canvas{display:block}.stage-hint{font-size:var(--step--1);color:var(--ink-soft);justify-content:center;align-items:center;gap:8px;margin-top:8px;font-weight:700;display:flex}.stage-hint svg{flex:none;width:30px;height:30px}.lesson-controls{border:var(--paper-line);border-radius:var(--r-paper);box-shadow:var(--paper-shadow);background:#fff;flex-wrap:wrap;align-items:center;gap:16px 28px;padding:16px 18px 20px;display:flex}.stepper{align-items:center;gap:8px;font-weight:700;display:flex}.stepper-label{min-width:3.2em}.stepper button{width:52px;height:52px;font-size:var(--step-2);border:var(--line);box-shadow:0 3px 0 var(--ink);cursor:pointer;background:#fff;border-radius:50%;place-items:center;padding:0 0 3px;font-weight:700;line-height:1;transition:transform 80ms,box-shadow 80ms;display:grid}.stepper button:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translateY(3px)}.stepper button:disabled{color:var(--pencil);border-color:var(--pencil);box-shadow:0 3px 0 var(--pencil);cursor:not-allowed}.stepper output{min-width:3.6em;font-family:var(--font-text);font-weight:600;font-size:var(--step-2);text-align:center;font-variant-numeric:tabular-nums;line-height:1.2}.stepper output small{font-size:var(--step--1);margin-left:2px}.equation{font-family:var(--font-display);letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:clamp(1.65rem,1.3rem + 1.8vw,2.3rem);line-height:1.6}.equation strong{color:var(--chalk-yellow);font-weight:400}.equation .frac{font-size:.8em}.equation-blank{text-align:center;border:2px dashed #f6f3e6b3;border-radius:6px;min-width:2em;display:inline-block}.equation-check{font-size:var(--step-0);margin-top:4px;line-height:1.7}.challenge-row{flex-wrap:wrap;gap:14px 12px;margin:14px 0 6px;display:flex}.back-row{margin-top:8px}.lesson-overlay{z-index:10;overscroll-behavior:contain;background-color:var(--paper);background-image:linear-gradient(transparent calc(100% - 1.5px), var(--rule) calc(100% - 1.5px));background-size:100% 32px;margin:0;padding:0 16px 56px;position:fixed;inset:0;overflow-y:auto}.lesson-overlay>*{max-width:43.5rem;margin-left:auto;margin-right:auto}.lesson-overlay-bar{z-index:3;background:var(--paper);border-bottom:2px solid var(--rule);max-width:none;margin:0 -16px 18px;padding:10px 16px 14px;position:sticky;top:0}.lesson-overlay-bar>*{max-width:43.5rem;margin:0 auto;display:flex}@media (width>=700px){.lesson-controls{padding:18px 24px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}.hanamaru path,.pen-circle path,.loading-line{stroke-dashoffset:0;animation:none}.loading-pencil{animation:none;transform:translate(120px)}.choice[data-state],.stamp,.feedback[data-correct=true] .feedback-title{animation:none}}
