.geo-board{--geo-paper:#fffaf0;--geo-grid:#c9a275;--geo-ink:#253675;--geo-mark:#e8553e;--geo-yellow:var(--accentAlt);--geo-yellow-dark:#c98a00;--geo-blue:#2f7de1;--geo-green:#3fa34d;--geo-ruler:#fff6c8;--geo-ruler-ink:#6b5200;--geo-focus:var(--accentAlt);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;overflow:visible}.geo-board text{pointer-events:none;font-family:Arial,sans-serif}.geo-cell{cursor:pointer;outline:none}.geo-cell-locked{cursor:default}.geo-focus{fill:none;stroke:var(--geo-focus);pointer-events:none}.geo-instrument{cursor:grab;outline:none}.geo-instrument:active{cursor:grabbing}.geo-instrument:focus-visible .geo-instrument-body{stroke:var(--geo-focus);stroke-width:1.2px}.geo-compass:focus-visible .geo-instrument-body{stroke-width:.3px}.geo-grip{cursor:crosshair}@media (prefers-reduced-motion:no-preference){.geo-traced{animation:.4s ease-out geo-trace}}@keyframes geo-trace{0%{stroke-dasharray:0 2000}to{stroke-dasharray:2000 0}}.ch-app{--ch-bubble:#fff;--ch-bubble-txt:#253675;color:var(--txt);background:#8fd06a;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:1rem;padding-top:3rem;display:grid;position:fixed;inset:0}.ch-app:before{content:"";background:var(--ch-decor) center bottom / cover no-repeat;pointer-events:none;position:absolute;inset:0;transform:scaleX(-1)}.ch-app>*{position:relative}.ch-title{align-items:baseline;gap:.5em;margin:0;font:1.3em gluten,serif;display:flex}.ch-title small{font:.6em var(--fontFMain,Arial, sans-serif);color:var(--txtDim)}.ch-site{--ch-cabin-h:min(82cqh, 64vh);min-height:0;position:relative;container-type:size}.ch-cabin{height:var(--ch-cabin-h);aspect-ratio:666/842;position:absolute;bottom:27vh;left:24%}.ch-cabin-svg{width:100%;height:100%;overflow:visible}.ch-plan{opacity:.3;filter:grayscale(.7)}.ch-plan-piece{filter:grayscale()brightness(1.55)contrast(.55)}@media (prefers-reduced-motion:no-preference){.ch-cabin-svg image{transition:opacity .6s ease-out}}.ch-abi{left:calc(24% + var(--ch-cabin-h) * 666 / 842 * .47);height:min(34%,30vh);position:absolute;bottom:2vh;translate:-50%}.ch-bubble{left:calc(24% + var(--ch-cabin-h) * 666 / 842 * .47);z-index:2;background:var(--ch-bubble);width:min(26rem,92%);color:var(--ch-bubble-txt);border:3px solid #0000;border-radius:1rem;margin:0;padding:.7rem .9rem;font:1.05em gluten,serif;position:absolute;bottom:calc(2vh + min(34cqh,30vh) + .9rem);translate:-50%;box-shadow:0 3px 8px #0004}.ch-bubble:after{content:"";border:12px solid #0000;border-bottom:0;border-top-color:var(--ch-bubble);position:absolute;bottom:-14px;left:50%;translate:-50%}.ch-bubble-right{--ch-bubble:#e4f7d9;border-color:#3fa34d}.ch-bubble-wrong{--ch-bubble:#fff0dc;border-color:#e8a400}.ch-bubble-explain{--ch-bubble:#e3f3ff;border-color:var(--accent)}@media (prefers-reduced-motion:no-preference){.ch-bubble{animation:.35s ease-out ch-pop}}@keyframes ch-pop{0%{opacity:.4;transform:scale(.92)}}.ch-work{flex-direction:column;gap:.6rem;min-height:0;padding:1rem 1rem 1rem 0;display:flex}.ch-task{background:var(--boxBg);border-radius:1rem;padding:.6rem .9rem;font-weight:700;box-shadow:0 1px 4px #0002}.ch-task small{color:var(--txtDim);font-weight:400;display:block}.ch-board{background:#fffaf0;border:6px solid #d9a066;border-radius:1rem;flex:1;min-height:0;padding:.5rem}.ch-tools:not(:empty){background:color-mix(in srgb, var(--boxBg) 88%, transparent);border-radius:1rem;padding:.45rem .7rem;box-shadow:0 2px 6px #0002}.ch-tools,.ch-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;display:flex}.ch-tool{border:3px solid var(--borderClr);background:var(--boxBg);border-radius:.7rem;place-items:center;min-width:48px;height:48px;margin:0;padding:0;display:grid}.ch-tool.ch-on{border-color:var(--accentAlt);box-shadow:0 0 0 3px color-mix(in srgb, var(--accentAlt) 35%, transparent)}.ch-vec-name{stroke:#fff;stroke-width:.12px;paint-order:stroke;font-size:.75px;font-style:italic;font-weight:700}.ch-sol-line{stroke:var(--geo-green);stroke-width:.08px;stroke-dasharray:.22 .16;stroke-linecap:round;pointer-events:none}.ch-sol-band{fill:var(--geo-green);opacity:.18;pointer-events:none}.ch-sol-label{fill:var(--geo-green);stroke:#fff;stroke-width:.1px;paint-order:stroke}.ch-sol-num.ch-sol-mm{stroke-width:1.6px;font-size:7px}.ch-sol-found{font-weight:800;fill:var(--geo-green)!important}.ch-sol-num{pointer-events:none;fill:var(--geo-green);stroke:#fff;stroke-width:.12px;paint-order:stroke;font-size:.55px;font-weight:700}.ch-answer input.ch-short{box-sizing:border-box;text-align:center;width:6.5em;max-width:100%}.ch-answer .ch-sign{min-width:44px;font-size:1.2em;font-weight:700}.ch-axis-num{text-anchor:middle;fill:var(--geo-ink,#253675);opacity:.85;font-size:.42px}.ch-axis-num.ch-axis-y{text-anchor:end}.ch-axis-name{fill:var(--geo-ink,#253675);font-size:.6px;font-style:italic;font-weight:700}.ch-len{text-anchor:middle;fill:var(--geo-ink,#253675);stroke:#fff;stroke-width:1.4px;paint-order:stroke;font-size:6px;font-weight:700}.ch-len-end{text-anchor:end}.ch-len-start{text-anchor:start}.ch-scale-note{text-anchor:end;fill:var(--geo-ink,#253675);opacity:.7;font-size:3.6px}.ch-point-name{fill:var(--geo-ink,#253675);stroke:#fff;stroke-width:.1px;paint-order:stroke;font-size:.85px;font-weight:600}.ch-plank-len{fill:var(--geo-ink,#253675);font-size:.7px;font-weight:700}.ch-opening{text-align:center;align-self:center;min-width:5.5em;font-weight:700}.ch-angle-name,.ch-angle-value{text-anchor:middle;paint-order:stroke;font-weight:700}.ch-angle-name{fill:var(--geo-ink,#253675);stroke:#f1cf9b;stroke-width:1.4px;font-size:8px}.ch-angle-value{fill:#fff;stroke:#7a4a22;stroke-width:1.2px;font-size:7.5px}.ch-angle-value.ch-angle-hidden{fill:var(--accentAlt)}.ch-angle-value.ch-angle-found{fill:#9ff08f}.ch-angle-right polyline:first-child{stroke:var(--geo-green,#3fa34d)}.ch-swatch-shape{width:28px;height:28px;margin:auto;display:block}.ch-swatch{border:2px solid #0004;border-radius:5px;width:26px;height:26px;margin:auto;display:block}.ch-answer{background:var(--boxBg);white-space:nowrap;border-radius:.8rem;flex-wrap:nowrap;align-items:center;gap:.5rem;padding:.4rem .8rem;font-weight:700;display:flex}.ch-answer label{white-space:nowrap}.ch-answer input{text-align:center;width:6rem;min-height:44px;font-size:1.2em}.ch-tool.ch-wide{color:var(--txt);align-items:center;gap:.4rem;padding:0 .9rem;font-weight:700;display:inline-flex}.ch-edge{border-radius:2px;width:16px;height:5px;display:inline-block}.ch-actions button{min-height:48px;padding:0 1.4rem}.ch-end{text-align:center;background:var(--boxBg);border-radius:1.2rem;place-self:center;padding:1.5rem 2rem;box-shadow:0 4px 16px #0003}.ch-end h2{margin:0 0 .5rem;font:1.6em gluten,serif}.ch-xp{color:var(--accent);font-size:1.3em;font-weight:700}.ch-help{flex-direction:column;gap:.8rem;max-width:40rem;display:flex}.ch-help h2,.ch-help h3{margin:0;font-family:gluten,serif}.ch-help p{margin:.2rem 0 0}.ch-help-step{grid-template-columns:11rem 1fr;align-items:center;gap:1rem;display:grid}.ch-help-pic{background:#fffaf0;border:4px solid #d9a066;border-radius:.8rem;height:7.5rem;padding:.3rem}.ch-help-keys{color:var(--txtDim);font-size:.9em}@media (width<=560px){.ch-help-step{grid-template-columns:1fr}}@media (width<=760px){.ch-app{grid-template-rows:9.5rem minmax(0,1fr);grid-template-columns:1fr;gap:.3rem}.ch-site{--ch-abi-w:calc(9.5rem * .85 * 642 / 669);--ch-cabin-w:calc(9.5rem * .8 * 666 / 842)}.ch-cabin{height:80%;bottom:0;left:auto;right:.2rem}.ch-abi{height:85%;bottom:0;left:.2rem;translate:none}.ch-bubble{width:auto;top:.3rem;bottom:auto;left:calc(.2rem + var(--ch-abi-w));right:calc(.4rem + var(--ch-cabin-w));border-width:2px;max-height:calc(100% - .6rem);padding:.35rem .5rem;font-size:.78em;line-height:1.2;overflow-y:auto;translate:none}.ch-bubble:after{border:8px solid #0000;border-left:0;border-right-color:var(--ch-bubble);top:1rem;bottom:auto;left:-10px;translate:none}.ch-work{padding:.3rem .5rem .6rem}.ch-title small{display:none}}.ch-help .fraction,.ch-bubble .fraction{margin:0 .15rem;padding:0 .25rem;font-size:.92em;line-height:1.15}.ch-help .fraction>i,.ch-bubble .fraction>i{width:calc(100% + .5rem);margin:.12rem -.25rem}.ch-eq{white-space:nowrap}@media (prefers-reduced-motion:no-preference){.ch-draw{stroke-dasharray:100;animation:1.2s ease-out both ch-draw}.ch-draw-late{animation-delay:1.1s}.ch-blink{animation:.8s ease-in-out 3 ch-blink}}@keyframes ch-draw{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes ch-blink{50%{opacity:.2}}.ch-hint{min-width:0;font-weight:600}.ch-step{text-align:center;color:var(--geo-ink,#253675);flex-basis:100%}.ch-angle-rank{text-anchor:middle;fill:#253675;font-size:6.5px;font-weight:800}.ch-touch{cursor:pointer}.ch-answer.ch-calc{flex-wrap:wrap;justify-content:center}.ch-answer.ch-calc input{width:5.5rem}.ch-map-len{text-anchor:middle;fill:var(--geo-ink,#253675);stroke:#fff;stroke-width:.12px;paint-order:stroke;font-size:.55px;font-weight:700}.ch-map-len.ch-map-start{text-anchor:start}
