@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-display:swap;src:url(./fredoka-500-De6GgPBN.ttf)format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-display:swap;src:url(./fredoka-600-BLVej9ak.ttf)format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-display:swap;src:url(./fredoka-700-C6iEZUUE.ttf)format("truetype")}@font-face{font-family:Lilita One;font-style:normal;font-weight:400;font-display:swap;src:url(./lilita-one-C6gfzYkI.ttf)format("truetype")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#1c1917;--paper:#fffdf8;--sun:#ffe566;--pink:#ff5d8f;--line:3px solid var(--ink);--shadow:4px 4px 0 var(--ink);--shadow-lg:6px 6px 0 var(--ink);--radius:22px;--font:"Fredoka", "Trebuchet MS", "Segoe UI", sans-serif;--display:"Lilita One", "Fredoka", "Trebuchet MS", sans-serif}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background-color:var(--sun);-webkit-font-smoothing:antialiased;background-image:radial-gradient(#1c191729 1.15px,#0000 1.15px);background-size:20px 20px}button,input{font:inherit;color:inherit}button{background:0 0;border:none;padding:0}::selection{background:var(--pink);color:var(--ink)}.app{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(320px,400px) minmax(0,1fr);gap:14px;max-width:1180px;height:100dvh;margin:0 auto;padding:14px;display:grid}.topbar{grid-area:1/1/auto/-1;align-items:center;display:flex}.brand{align-items:center;gap:16px;display:flex}.logo{font-family:var(--display);letter-spacing:.01em;background:var(--pink);border:var(--line);box-shadow:var(--shadow);border-radius:18px;margin:0;padding:6px 16px 8px;font-size:3rem;font-weight:400;line-height:1;transform:rotate(-3deg)}.tagline{max-width:34ch;margin:0;font-size:1.12rem;font-weight:600;line-height:1.3}.panel,.stage,.palette{background:var(--paper);border:var(--line);min-height:0;box-shadow:var(--shadow-lg);border-radius:28px}.palette{grid-area:2/1/auto/-1;padding:12px 14px 14px}.panel{grid-area:3/1}.stage{grid-area:3/2}.palette-bar{grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);align-items:stretch;gap:10px;display:grid}.ops{flex-direction:column;gap:8px;display:flex}.palette .section-head{align-items:center}.palette .hint{text-align:right;max-width:42ch;min-height:2.5em;margin:0}.panel{flex-direction:column;gap:12px;padding:14px;display:flex}.section-head{justify-content:space-between;align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.section-head h2{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.95rem}.section-note{margin:2px 0 0;font-size:.82rem;font-weight:500}.text-btn{border:2.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:3px 10px 4px;font-size:.85rem;font-weight:700}.text-btn:hover:not(:disabled){box-shadow:3px 3px 0 var(--ink);transform:translate(-1px,-1px)}.text-btn:active:not(:disabled),.text-btn:disabled{box-shadow:0 0 0 var(--ink);transform:translate(1px,1px)}.text-btn:disabled{cursor:not-allowed;filter:saturate(.6)}.numpad,.oppad{gap:8px;display:grid}.numpad{grid-template-rows:1fr;grid-template-columns:repeat(9,minmax(0,1fr));height:100%}.oppad{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}.block{background:var(--c);border:var(--line);box-shadow:3px 3px 0 var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:1px;line-height:1.05;display:flex}.numpad .block{height:100%;min-height:92px}.oppad .block{height:100%;min-height:46px;padding:4px 2px}.block-main{font-weight:700}.numpad .block-main{font-size:1.7rem}.oppad .block-main{font-size:1.28rem}.block.is-long .block-main{font-size:1rem}.block-sub{letter-spacing:.01em;font-size:.68rem;font-weight:600}.block:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.block:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.hint{min-height:2.5em;margin:8px 2px 0;font-size:.92rem;font-weight:600;line-height:1.25}.moves{flex-direction:column;flex:1;min-height:0;display:flex}.moves-scroll{overscroll-behavior:contain;border-radius:16px;flex:1;min-height:0;overflow:hidden auto}.moves-scroll.is-hot{background:#ffe14a73}.lane{flex-direction:column;gap:8px;margin:0;list-style:none;display:flex}#program{padding:8px 20px 14px 18px}.lane:empty{display:none}.moves-empty{text-align:center;border:3px dashed var(--ink);background:#ffffffa6;border-radius:18px;margin:8px;padding:22px 14px;font-weight:600}.move{border:var(--line);width:calc(100% - 18px);min-height:54px;box-shadow:3px 3px 0 var(--ink);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:16px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px 8px 12px;transition:filter .2s;display:grid;position:relative}.move:active{cursor:grabbing}.move.is-dragging{opacity:.45}.move.is-done{filter:saturate(.3)brightness(1.06)}.move.is-now,.move.is-error{--marker:var(--pink);--indent:10px;--rest-shadow:6px 6px 0 var(--ink);transform:translateX(var(--indent));box-shadow:var(--rest-shadow);z-index:1}.move.is-error{--marker:#e0123f}.move.is-now:before,.move.is-error:before{content:"";background:var(--marker);border:2.5px solid var(--ink);border-radius:3px;width:16px;height:16px;margin-top:-8px;animation:.3s cubic-bezier(.2,1.6,.4,1) marker-in;position:absolute;top:50%;left:-25px;transform:rotate(45deg)}.move.is-hint-up,.move.is-hint-down,.move.is-hint-room{filter:none}.move.is-hint-up,.move.is-hint-down{z-index:3;animation:2.6s cubic-bezier(.45,0,.3,1) .4s infinite hint-drag}.move.is-hint-room{animation:2.6s cubic-bezier(.45,0,.3,1) .4s infinite hint-room}.move.is-hint-up:hover,.move.is-hint-down:hover,.move.is-hint-room:hover{animation:none}.move.is-hint-down:after{content:"Drag me ↓"}.move.is-hint-up:after{content:"Drag me ↑"}.move.is-hint-up:after,.move.is-hint-down:after{background:var(--pink);border:2px solid var(--ink);white-space:nowrap;pointer-events:none;border-radius:999px;padding:2px 9px 3px;font-size:.78rem;font-weight:700;position:absolute;top:50%;right:48px;transform:translateY(-50%)rotate(-4deg)}@keyframes hint-drag{0%,12%,88%,to{transform:translateX(var(--indent,0px));box-shadow:var(--rest-shadow,3px 3px 0 var(--ink))}22%{transform:translate(calc(var(--indent,0px) - 3px), -4px) rotate(-1.5deg);box-shadow:8px 10px 0 var(--ink)}45%,65%{transform:translate(calc(var(--indent,0px) - 3px), calc(var(--hint-shift) - 4px)) rotate(-1.5deg);box-shadow:8px 10px 0 var(--ink)}78%{transform:translate(var(--indent,0px), var(--hint-shift));box-shadow:var(--rest-shadow,3px 3px 0 var(--ink))}}@keyframes hint-room{0%,22%,88%,to{transform:translateX(var(--indent,0px))}45%,78%{transform:translate(var(--indent,0px), var(--hint-shift))}}@keyframes marker-in{0%{transform:rotate(45deg)scale(0)}}.move.drop-before{box-shadow:0 -6px 0 var(--pink), 3px 3px 0 var(--ink)}.lane.drop-end:after{content:"";background:var(--pink);border:3px solid var(--ink);border-radius:99px;height:8px;display:block}.move:hover:not(.is-now):not(.is-error):not(.is-dragging){box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.move-index{border:2.5px solid var(--ink);background:#fff;border-radius:11px;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.move.is-done .move-index{background:#c6f54e}.move.is-now .move-index,.move.is-error .move-index{background:var(--pink)}.move-label{align-items:baseline;gap:8px;min-width:0;font-weight:700;line-height:1;display:flex}.move-name{font-size:1.55rem}.move-name.word{font-size:1.25rem}.move-sub{font-size:.82rem;font-weight:600}.move-remove{border:2.5px solid var(--ink);width:30px;height:30px;box-shadow:2px 2px 0 var(--ink);cursor:pointer;background:#fff;border-radius:999px;font-size:1.1rem;font-weight:700;line-height:1}.move-remove:hover{background:var(--pink)}.move-remove:active{box-shadow:0 0 0 var(--ink);transform:translate(1px,1px)}.transport{border-top:3px solid var(--ink);flex-direction:column;gap:10px;padding-top:12px;display:flex}.transport-buttons{grid-template-columns:1fr 1.1fr 1.25fr;gap:10px;display:grid}.transport-buttons.is-pair{grid-template-columns:1fr 1.6fr}.is-coach{--rest:3px 3px 0 var(--ink);z-index:2;animation:1.5s ease-in-out infinite coach;position:relative}.btn.is-coach{--rest:var(--shadow)}@keyframes coach{0%{box-shadow:var(--rest), 0 0 0 0 #ff5d8fd9;transform:none}12%{transform:translate(-1px,-6px)}26%{transform:none}36%{transform:translateY(-2px)}46%,to{transform:none}75%,to{box-shadow:var(--rest), 0 0 0 16px #ff5d8f00}}.btn-play{background:#7adfff}.btn-play:before{content:"";vertical-align:-.02em;border-top:.34em solid #0000;border-bottom:.34em solid #0000;border-left:.55em solid;margin-right:.4em;display:inline-block}.btn-play.is-playing{background:var(--sun)}.btn-play.is-playing:before{box-sizing:border-box;border:0;border-left:.17em solid;border-right:.17em solid;width:.5em;height:.68em}.btn{border:var(--line);height:56px;box-shadow:var(--shadow);cursor:pointer;background:#fff;border-radius:16px;font-size:1.25rem;font-weight:700}.btn-step{background:var(--pink)}.btn-step:after{content:"";vertical-align:.05em;border-top:3px solid;border-right:3px solid;width:.42em;height:.42em;margin-left:.4em;display:inline-block;transform:rotate(45deg)}.btn-step.is-done:after{content:none}.btn-step:disabled:after{border-color:currentColor}.btn-step.is-done{background:#c6f54e}.btn:hover:not(:disabled){box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}.btn:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.btn:disabled{cursor:not-allowed;box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.btn:disabled:not(.is-done){color:#8a837c;background:#efe8dc}.scrubber{padding:0 6px}.scrubber-top{justify-content:space-between;align-items:baseline;gap:12px;font-weight:700;display:flex}#scrubberFraction{font-size:.95rem}.scrub{--pad:16px;--ratio:0;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:999px;height:40px;margin-top:2px;position:relative}.scrub.is-dragging{cursor:grabbing}.scrub.is-disabled{cursor:not-allowed;opacity:.45}.scrub:focus{outline:none}.scrub:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.scrub-track{left:calc(var(--pad) - 8px);right:calc(var(--pad) - 8px);border:3px solid var(--ink);height:16px;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:999px;position:absolute;top:12px;overflow:hidden}.scrub-fill{width:calc(8px + (100% - 16px) * var(--ratio));background:var(--pink);position:absolute;inset:0 auto 0 0}.scrub-ticks{position:absolute;inset:0 8px}.scrub-tick{top:2px;bottom:2px;left:calc(100% * var(--ratio));background:var(--ink);opacity:.35;border-radius:2px;width:3px;margin-left:-1.5px;position:absolute}.scrub-tick.is-unreachable{opacity:.12}.scrub-thumb{top:4px;left:calc(var(--pad) + (100% - 2 * var(--pad)) * var(--ratio));border:3px solid var(--ink);width:32px;height:32px;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:50%;margin-left:-16px;position:absolute}.scrub.is-dragging .scrub-thumb{background:var(--sun);transform:scale(1.08)}.help{margin:0;font-size:.82rem;font-weight:500}.stage{background-color:var(--paper);background-image:radial-gradient(#eadfca 1.35px,#0000 1.35px);background-size:18px 18px;flex-direction:column;display:flex;position:relative;overflow:hidden}.stage-head{z-index:5;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 0;display:flex;position:absolute;top:0;left:0;right:0}.stage-head>*{pointer-events:auto}.caption{border:var(--line);max-width:480px;box-shadow:var(--shadow);-webkit-user-select:text;user-select:text;background:#fff;border-radius:18px;margin:0;padding:12px 14px;font-size:1.12rem;font-weight:600;line-height:1.35}.caption.tone-error{background:#ffb3cc}.caption.tone-done{background:#c6f54e}.count{background:var(--sun);border:var(--line);box-shadow:3px 3px 0 var(--ink);white-space:nowrap;border-radius:999px;margin:0;padding:6px 12px 7px;font-weight:700;transform:rotate(2deg)}.stage-scroll{z-index:0;overscroll-behavior:contain;flex-direction:column;flex:1;min-height:0;padding:0 16px 4px;display:flex;position:relative;overflow:hidden auto}.spacer{flex:1 0 0;min-height:0}.pile{flex:none;width:100%;position:relative}.card,.chip,.spark,.flash{will-change:transform, opacity;position:absolute;bottom:0}.card{border:var(--line);width:fit-content;min-width:156px;max-width:min(78%,320px);height:84px;box-shadow:4px 4px 0 var(--ink);text-align:center;transform-origin:50% 100%;border-radius:18px;justify-content:center;align-items:center;margin:0 auto;padding:0 22px;display:flex;left:0;right:0}.card.is-top{box-shadow:6px 8px 0 var(--ink)}.card-value{letter-spacing:-.03em;white-space:nowrap;font-weight:700;line-height:.95;display:block}.chip{border:var(--line);width:fit-content;min-width:64px;height:52px;box-shadow:3px 3px 0 var(--ink);transform-origin:50% 100%;border-radius:999px;justify-content:center;align-items:center;margin:0 auto;padding:0 16px;font-size:2rem;font-weight:700;line-height:1;display:flex;left:0;right:0}.chip.is-word{font-size:1.2rem}.chip.is-sad{box-shadow:3px 3px 0 var(--ink), 0 0 0 6px #ff5d8f59}.spark{width:var(--size);height:var(--size);margin-left:calc(var(--size) / -2);margin-bottom:calc(var(--size) / -2);border:2.5px solid var(--ink);border-radius:4px;left:50%}.spark.is-round{border-radius:50%}.flash{background:radial-gradient(circle,#fff 0 45%,#fff0 70%);border-radius:50%;width:120px;height:120px;margin-bottom:-60px;margin-left:-60px;left:50%}.mark{border:var(--line);width:46px;height:46px;box-shadow:3px 3px 0 var(--ink);will-change:transform, opacity;border-radius:50%;place-items:center;margin-left:-23px;font-size:1.6rem;font-weight:700;line-height:1;display:grid;position:absolute;bottom:0;left:50%}.mark.is-pass{background:#c6f54e}.mark.is-fail{background:#ff7aa8}.floor{background:var(--sun);border:var(--line);height:22px;box-shadow:var(--shadow);border-radius:999px;flex-shrink:0;margin:8px 11% 20px}.moves-scroll::-webkit-scrollbar{width:12px}.stage-scroll::-webkit-scrollbar{width:12px}.moves-scroll::-webkit-scrollbar-thumb{background:var(--ink);border:3px solid var(--paper);border-radius:99px}.stage-scroll::-webkit-scrollbar-thumb{background:var(--ink);border:3px solid var(--paper);border-radius:99px}:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.tune-btn{background:#cbbdff;margin-left:auto}.tuner{z-index:50;background:var(--paper);border:var(--line);width:min(330px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-lg);overscroll-behavior:contain;border-radius:22px;padding:12px 14px 14px;position:fixed;bottom:16px;right:16px;overflow-y:auto}.tuner[hidden]{display:none}.tuner-head{justify-content:space-between;align-items:center;display:flex}.tuner-head h2{margin:0;font-size:1.1rem}.tuner-close{border:2.5px solid var(--ink);width:30px;height:30px;box-shadow:2px 2px 0 var(--ink);cursor:pointer;background:#fff;border-radius:999px;font-size:1.1rem;font-weight:700}.tuner-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.tuner-check{cursor:pointer;align-items:center;gap:4px;font-size:.9rem;font-weight:700;display:inline-flex}.tuner-check input{width:18px;height:18px;accent-color:var(--pink)}.tuner-group{border-top:2.5px solid var(--ink);margin-top:12px;padding-top:10px}.tuner-group h3{letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:.78rem}.tuner-row{grid-template-columns:1fr auto;align-items:baseline;column-gap:8px;margin-top:4px;font-size:.85rem;font-weight:600;display:grid}.tuner-value{font-variant-numeric:tabular-nums;font-weight:700}.tuner-row input{width:100%;accent-color:var(--pink);grid-column:1/-1;margin:2px 0 0}.tuner-output{border:2.5px solid var(--ink);white-space:pre-wrap;-webkit-user-select:all;user-select:all;background:#fff;border-radius:12px;margin:10px 0 0;padding:8px 10px;font-size:.78rem}.noscript{border:var(--line);background:#fff;border-radius:16px;margin:16px;padding:12px 14px;font-weight:700}.logo{display:inline-block}a.logo{color:inherit;text-decoration:none}a.logo:hover{transform:rotate(-5deg)scale(1.03)}.heading{gap:2px;display:grid}.heading-kicker{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.heading-title{margin:0;font-size:1.5rem;font-weight:700;line-height:1.1}.heading .tagline{max-width:60ch;font-size:1rem;font-weight:500}.topbar-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.nav-btn{color:inherit;background:var(--sun);text-decoration:none;display:inline-block}.star-total{border:var(--line);box-shadow:3px 3px 0 var(--ink);white-space:nowrap;background:#fff;border-radius:999px;margin:0;padding:4px 12px 5px;font-weight:700}.palette-row{flex-wrap:wrap;gap:12px;padding-top:4px;display:flex}.palette-row .block{width:104px;min-height:76px;padding:6px 4px;position:relative}.palette-row .block-main{font-size:1.6rem}.palette-row .block.is-long .block-main{font-size:1.1rem}.block-count{background:var(--ink);color:#fff;border-radius:999px;padding:2px 7px 3px;font-size:.78rem;font-weight:700;position:absolute;top:-10px;right:-8px;transform:rotate(6deg)}.block.is-empty,.block.is-empty:hover{cursor:not-allowed;opacity:.45;box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.block.is-empty .block-count{background:var(--pink);color:var(--ink)}.stage.has-goal .stage-scroll{padding-right:150px}.goal{z-index:4;text-align:center;border:3px dashed var(--ink);background:#fff;border-radius:20px;flex-direction:column;align-items:center;gap:8px;width:124px;padding:10px 10px 12px;transition:background-color .2s;display:flex;position:absolute;bottom:58px;right:16px}.goal-title{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}.goal-pile{flex-direction:column-reverse;gap:6px;width:100%;display:flex}.goal-card{background:var(--paper);border:var(--line);height:44px;box-shadow:3px 3px 0 var(--ink);white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;padding:0 8px;font-size:1.4rem;font-weight:700;display:flex}.goal-note{gap:2px;margin:0;font-size:.82rem;font-weight:600;display:grid}.goal-fewest{font-size:1rem;font-weight:700}.goal.is-met{box-shadow:var(--shadow);background:#c6f54e;border-style:solid}.goal.is-met .goal-card{background:#fff}.goal.is-missed{background:#ffe0ea;animation:.5s nudge}.goal.is-intro{z-index:7;transform-origin:50%}.goal-intro{z-index:6;background:#fffdf8e0;transition:opacity .35s;animation:.25s both fade-in;position:absolute;inset:0}.goal-intro.is-leaving{opacity:0}.goal-intro-title{left:0;right:0;bottom:calc(100% - var(--top) + 22px);font-family:var(--display);text-align:center;margin:0;font-size:1.9rem;animation:.45s cubic-bezier(.2,1.4,.4,1) .1s both drop-in;position:absolute}@keyframes fade-in{0%{opacity:0}}@keyframes nudge{20%{transform:rotate(-4deg)}45%{transform:rotate(3deg)}70%{transform:rotate(-1.5deg)}}.max-line{border-top:3px dashed var(--ink);pointer-events:none;height:0;position:absolute;left:4%;right:4%}.max-line[hidden]{display:none}.max-line span{background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 9px 3px;font-size:.75rem;font-weight:700;position:absolute;bottom:5px;right:0}.gold-star{color:#0000;-webkit-text-stroke:1.5px #1c191759;font-size:1.2rem;line-height:1;display:inline-block}.gold-star.is-on{color:#ffb020;-webkit-text-stroke:1.5px var(--ink)}.gold-star.is-big{color:#fff;-webkit-text-stroke:3px var(--ink);font-size:3.2rem}.gold-star.is-big.is-on{color:#ffb020;animation:.55s cubic-bezier(.2,1.6,.4,1) .25s both star-pop}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-40deg)}}.win{z-index:8;pointer-events:none;justify-content:center;display:flex;position:absolute;top:14px;left:14px;right:14px}.win-card{border:var(--line);width:100%;box-shadow:var(--shadow-lg);pointer-events:auto;background:#c6f54e;border-radius:24px;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 14px 12px 18px;animation:.5s cubic-bezier(.2,1.4,.4,1) both drop-in;display:flex}.win-text{flex:auto}.win-title{font-family:var(--display);margin:0;font-size:2rem;line-height:1}.win-detail{margin:4px 0 0;font-weight:600}.win-actions{gap:10px;display:flex}.win-actions .btn{height:48px;color:inherit;white-space:nowrap;justify-content:center;align-items:center;padding:0 16px;font-size:1.05rem;text-decoration:none;display:flex}@keyframes drop-in{0%{opacity:0;transform:translateY(-40px)rotate(-2deg)}}.levels-page{gap:18px;max-width:1180px;margin:0 auto;padding:14px 14px 48px;display:grid}.chapter{background:var(--paper);border:var(--line);box-shadow:var(--shadow-lg);border-radius:28px;padding:16px 18px 20px}.chapter-head{flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:14px;display:flex}.chapter-head h2{background:var(--c);border:var(--line);box-shadow:3px 3px 0 var(--ink);border-radius:12px;margin:0;padding:2px 12px 4px;font-size:1.3rem;transform:rotate(-1.5deg)}.chapter-head p{margin:0;font-weight:600}.level-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.level-tile{height:100%;min-height:124px;color:inherit;border:var(--line);box-shadow:4px 4px 0 var(--ink);background:#fff;border-radius:18px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px 12px;text-decoration:none;display:flex;position:relative}a.level-tile:hover{box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}a.level-tile:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.level-tile.is-solved{background:var(--c)}.level-tile.is-locked{box-shadow:none;opacity:.5;cursor:not-allowed;background:0 0;border-style:dashed;justify-content:space-between}.level-number{border:2.5px solid var(--ink);background:#fff;border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:700}.level-goal{margin-top:4px;font-size:1.6rem;font-weight:700;line-height:1.05}.level-name{font-size:.92rem;font-weight:600}.level-tile .gold-star{-webkit-text-stroke-width:2.5px;font-size:2.1rem;position:absolute;top:8px;right:10px}.level-tile .gold-star:not(.is-on){-webkit-text-stroke-color:#1c191766}.level-tile .gold-star.is-on{text-shadow:2px 2px 0 var(--ink);animation:none}.levels-footer{justify-content:center;padding:6px 0 0;display:flex}.reset-btn{letter-spacing:.04em;color:#1c19178c;text-underline-offset:3px;cursor:pointer;padding:4px 10px;font-size:.78rem;font-weight:600;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.reset-btn:hover{color:var(--ink)}.reset-confirm{background:var(--paper);border:var(--line);box-shadow:3px 3px 0 var(--ink);border-radius:999px;align-items:center;gap:10px;padding:6px 8px 6px 14px;display:flex}.reset-confirm-label{font-size:.85rem;font-weight:700}.reset-confirm .text-btn{font-size:.8rem}.reset-confirm-yes{background:var(--pink)}@keyframes shake{0%,to{transform:translate(10px)}25%{transform:translate(2px)}50%{transform:translate(16px)}75%{transform:translate(4px)}}.move.is-shake{animation:.42s shake}@keyframes arrive{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:none}}.move.is-fresh{animation:.22s cubic-bezier(.2,1.2,.4,1) arrive}.block.is-box{border-left-width:10px}.box{background:color-mix(in srgb, var(--c) 30%, #fffdf8);border:var(--line);width:calc(100% - 18px);box-shadow:3px 3px 0 var(--ink);border-radius:18px;padding-bottom:10px;position:relative}.box.is-active{box-shadow:6px 6px 0 var(--ink)}.box.is-dragging{opacity:.45}.box.drop-before{box-shadow:0 -6px 0 var(--pink), 3px 3px 0 var(--ink)}.box>.box-head{border:0;border-bottom:var(--line);width:100%;box-shadow:none;border-radius:15px 15px 0 0}.box.is-active>.box-head.is-done{filter:none}.box>.box-head.is-now,.box>.box-head.is-error{transform:none;box-shadow:inset 0 -4px #1c19172e}.box>.box-head.is-now:before,.box>.box-head.is-error:before{left:-17px}.box>.box-head.is-shake{animation:none}.box>.box-head:hover:not(.is-now):not(.is-error){transform:none;box-shadow:inset 0 -4px #ffffff73}.box-title{flex-wrap:wrap;align-items:center;gap:4px 8px}.box-word{font-size:1.25rem}.box-condition{font-size:.86rem;font-weight:700}button.box-condition{border:2.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:3px 9px;font-size:.82rem;font-weight:700}button.box-condition:after{content:" ↻"}button.box-condition:active{box-shadow:none;transform:translate(1px,1px)}.box-count{align-items:center;gap:4px;display:inline-flex}.box-count button{border:2.5px solid var(--ink);width:26px;height:26px;font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:0;font-weight:700;line-height:1}.box-count button:disabled{opacity:.35;cursor:not-allowed}.box-count-value{text-align:center;min-width:2.2ch;font-size:1.25rem}.box-pass{border:2px solid var(--ink);letter-spacing:.04em;white-space:nowrap;background:#fff;border-radius:999px;padding:3px 8px 2px;font-size:.7rem;font-weight:700}.box-lane{padding:10px 0 0 14px;transition:opacity .2s}.box-lane.is-skipped{opacity:.4}.box-mid{letter-spacing:.08em;text-transform:uppercase;border-top:3px dashed #1c191766;margin:10px 0 0;padding:6px 14px 0;font-size:.75rem;font-weight:700}.slot{width:calc(100% - 18px)}.slot.is-active{border:3px dashed var(--ink);text-align:center;background:#ffffffbf;border-radius:14px;padding:9px 12px;font-size:.85rem;font-weight:700}.slot-btn{color:#1c191799;width:100%;font:inherit;cursor:pointer;background:0 0;border:2.5px dashed #1c19174d;border-radius:12px;padding:5px;font-size:.78rem;font-weight:700}.slot-btn:hover{border-color:var(--ink);color:var(--ink);background:#fff}.stage-head{flex-wrap:wrap}.cases{flex-wrap:wrap;flex-basis:100%;gap:10px;display:flex}.case-card{border:var(--line);box-shadow:3px 3px 0 var(--ink);font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;align-items:flex-start;gap:5px;padding:8px 12px 9px;display:flex}.case-card:hover:not(.is-selected){box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.case-card.is-selected{background:var(--sun);box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)rotate(-1deg)}.case-name{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.case-piles{align-items:center;gap:6px;display:flex}.case-arrow{font-weight:700}.mini-pile{gap:3px;display:inline-flex}.mini-pile.is-empty{opacity:.6;font-size:.78rem;font-weight:600}.mini-card{background:var(--paper);border:2px solid var(--ink);text-align:center;border-radius:7px;min-width:26px;padding:2px 6px;font-size:.9rem;font-weight:700}.case-status{font-size:.75rem;font-weight:700}.case-card.is-pass .case-status{color:#2e7d0f}.case-card.is-fail .case-status{color:#c4185c}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (height<=820px){.logo{font-size:2.4rem}.numpad .block{min-height:72px}.btn{height:48px}}@media (width<=900px){html,body{height:auto;overflow:auto}.app{grid-template-rows:auto auto auto auto;grid-template-columns:1fr;height:auto}.palette,.panel,.stage{grid-area:auto/1}.palette-bar{grid-template-columns:1fr}.numpad{grid-template-columns:repeat(3,minmax(0,1fr))}.numpad .block{height:52px;min-height:52px}.palette .hint{text-align:left}.moves{flex:none}.moves-scroll{min-height:120px;max-height:320px}.panel{min-height:0}.stage{min-height:480px}.topbar{flex-wrap:wrap;gap:10px}.stage.has-goal .stage-scroll{padding-right:128px}.goal{width:104px}}
