@import "https://fonts.googleapis.com/css2?family=Albert+Sans:wght@400;500;600;700;800&display=swap";
*{box-sizing:border-box}:root{--background:#faf6ee;--surface:#fff;--surface-strong:#f3ecdd;--text:#201e1a;--muted:#6f675c;--line:#ece4d4;--primary:#50a3a4;--primary-dark:#3c7d7e;--positive:#2f9e6f;--negative:#f95335;--warning:#fcaf38;--purple:#7c5cd6;--bdb-ground:#faf6ee;--bdb-ground-2:#f3ecdd;--bdb-card:#fff;--bdb-ink:#201e1a;--bdb-ink-soft:#6f675c;--bdb-ink-faint:#7a7061;--bdb-line:#ece4d4;--bdb-amber:#fcaf38;--bdb-teal:#50a3a4;--bdb-brown:#674a40;--bdb-coral:#f95335;--bdb-green:#2f9e6f;--bdb-teal-deep:#3c7d7e;--bdb-coral-deep:#c93818;--bdb-green-deep:#1f7a52;--bdb-shadow-sm:0 1px 2px #201e1a0d, 0 1px 1px #201e1a0a;--bdb-shadow:0 10px 24px -16px #674a4073, 0 2px 6px #201e1a0d;--bdb-shadow-lg:0 22px 48px -24px #674a4080;--bdb-r-sm:10px;--bdb-r:16px;--bdb-r-lg:22px;--bdb-r-pill:999px;--bdb-font:"Albert Sans", Inter, ui-sans-serif, system-ui, sans-serif}html,body{min-height:100%;margin:0}body{background:var(--bdb-ground);color:var(--text);font-family:Albert Sans,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font:inherit}button{touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.48;transform:none}a{color:inherit;text-decoration:none}.app-page{min-height:100vh;padding:24px}.home-page{align-content:center;gap:28px;display:grid}.brand-block{max-width:980px}.brand-mark{border:2px solid var(--text);background:var(--surface);min-width:84px;min-height:84px;color:var(--text);border-radius:8px;place-items:center;font-size:1.4rem;font-weight:900;display:inline-grid}.brand-title{letter-spacing:0;margin:18px 0 8px;font-size:clamp(2.6rem,7vw,5.4rem);line-height:.95}.brand-subtitle{max-width:720px;color:var(--muted);margin:0;font-size:1.25rem;line-height:1.5}.launch-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;width:min(100%,1120px);display:grid}.launch-button,.big-button,.tool-button,.small-button{border:2px solid var(--line);background:var(--surface);min-height:56px;color:var(--text);cursor:pointer;letter-spacing:0;border-radius:8px;justify-content:center;align-items:center;font-weight:800;transition:transform .14s,border-color .14s,background-color .14s;display:inline-flex}.launch-button{min-height:112px;padding:22px;font-size:1.3rem;box-shadow:0 12px 28px #21252d14}.launch-button:hover,.big-button:hover,.tool-button:hover,.small-button:hover{border-color:var(--primary);transform:translateY(-1px)}.tool-header{z-index:10;border-bottom:2px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#faf6eef0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.tool-title{margin:0;font-size:1.35rem}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tool-button{min-width:112px;padding:12px 16px}.small-button{min-width:88px;min-height:48px;padding:10px 14px}.tool-button.active,.small-button.active,.small-button.primary,.big-button.primary,.tool-button.primary{border-color:var(--primary-dark);background:var(--primary-dark);color:#fff}.danger{border-color:var(--negative);color:var(--negative)}.danger:hover{background:#fff1f1}.status-pill{border:2px solid var(--line);background:var(--surface);min-height:40px;color:var(--muted);border-radius:8px;align-items:center;padding:8px 12px;font-size:.95rem;font-weight:800;display:inline-flex}.board-shell{min-height:calc(100vh - 74px);padding:18px;display:grid}.whiteboard-shell{padding:0}.whiteboard-area{background:#fff;height:calc(100vh - 78px);position:relative;overflow:hidden}.whiteboard-canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.manipulative-board{border:2px solid var(--line);background:linear-gradient(90deg, #ece4d4cc 1px, transparent 1px), linear-gradient(0deg, #ece4d4cc 1px, transparent 1px), var(--surface);background-size:40px 40px;border-radius:8px;min-height:calc(100vh - 128px);position:relative;overflow:hidden}.algebra-shell{gap:14px}.expression-panel{border:2px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:minmax(260px,1fr) auto auto auto;align-items:end;gap:12px;padding:14px;display:grid}.expression-field{min-width:0}.equation-display{z-index:1;border:2px solid var(--line);min-height:64px;color:var(--text);pointer-events:none;background:#ffffffeb;border-radius:8px;place-items:center;font-size:2rem;font-weight:900;display:grid;position:absolute;top:22px;left:24px;right:24px}.tile-equals-sign{z-index:1;border:3px solid var(--text);width:72px;height:72px;color:var(--text);pointer-events:none;background:#fffffff0;border-radius:8px;place-items:center;font-size:3.4rem;font-weight:900;line-height:1;display:grid;position:absolute;top:238px;left:50%;transform:translate(-50%)}.tile,.fraction-bar{color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border:2px solid #00000029;border-radius:8px;place-items:center;font-weight:900;display:grid;position:absolute;box-shadow:0 10px 18px #21252d24}.tile:active,.fraction-bar:active{cursor:grabbing}.tile.selected,.fraction-bar.selected{outline:4px solid var(--warning);outline-offset:3px;box-shadow:0 12px 22px #21252d33}.tile.positive{background:var(--positive)}.tile.negative{background:var(--negative)}.tile.unit{width:40px;height:40px}.tile.x{width:40px;height:120px}.tile.x2{width:120px;height:120px}.fraction-board{--whole-width:min(720px, calc(100vw - 88px));align-content:start;gap:14px;padding:24px;display:grid}.fraction-ruler{width:min(var(--whole-width), 100%);border:2px dashed var(--line);height:48px;color:var(--muted);border-radius:8px;place-items:center;margin:0 auto;font-weight:800;display:grid}.fraction-stage{border:2px solid var(--line);background:linear-gradient(90deg, #ece4d4cc 1px, transparent 1px), linear-gradient(0deg, #ece4d4cc 1px, transparent 1px), var(--surface);background-position:24px 24px;background-size:40px 62px;border-radius:8px;min-height:calc(100vh - 210px);position:relative;overflow:hidden}.fraction-bar{z-index:2;background-image:repeating-linear-gradient(90deg, #fff0 0, #fff0 calc((100% / var(--bar-denominator)) - 2px), #ffffffb8 calc((100% / var(--bar-denominator)) - 2px), #ffffffb8 calc(100% / var(--bar-denominator)));height:46px;overflow:hidden}.fraction-guide-row{z-index:1;background:repeating-linear-gradient(90deg, #201e1a00 0, #201e1a00 calc((100% / var(--guide-denominator)) - 2px), #201e1a38 calc((100% / var(--guide-denominator)) - 2px), #201e1a38 calc(100% / var(--guide-denominator))), #ffffff57;color:#201e1a6b;pointer-events:none;border:2px dashed #201e1a3d;border-radius:8px;align-items:center;height:46px;font-size:.74rem;font-weight:900;display:grid;position:absolute}.fraction-guide-row span{padding-left:8px}.fraction-label{z-index:1;position:relative}.form-page{gap:20px;max-width:980px;margin:0 auto;padding:24px;display:grid}.form-panel,.responses-panel,.timer-panel{border:2px solid var(--line);background:var(--surface);border-radius:8px;gap:16px;padding:20px;display:grid}.field{gap:8px;font-weight:800;display:grid}.text-input,.text-area{border:2px solid var(--line);width:100%;color:var(--text);border-radius:8px;padding:14px 16px;font-size:1.08rem}.text-area{resize:vertical;min-height:118px}.code-card{border:2px solid var(--text);background:var(--surface-strong);border-radius:8px;place-items:center;width:fit-content;min-width:176px;padding:16px 22px;font-family:SFMono-Regular,Consolas,Liberation Mono,ui-monospace,monospace;font-size:2.3rem;font-weight:900;display:inline-grid}.responses-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.response-item{border:2px solid var(--line);background:#fffdf8;border-radius:8px;gap:6px;padding:14px;display:grid}.response-name{color:var(--primary-dark);font-weight:900}.response-answer{margin:0;font-size:1.12rem}.history-item{padding:0}.history-button{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;gap:6px;padding:14px;display:grid}.history-button:hover{background:var(--surface-strong)}.history-meta{color:var(--muted);font-size:.95rem;font-weight:800}.timer-page{place-items:center;min-height:calc(100vh - 74px);padding:24px;display:grid}.timer-panel{justify-items:center;width:min(100%,680px)}.timer-display{font-family:SFMono-Regular,Consolas,Liberation Mono,ui-monospace,monospace;font-size:clamp(4rem,15vw,9rem);font-weight:900;line-height:1}.timer-inputs{grid-template-columns:repeat(2,minmax(140px,1fr));gap:12px;width:100%;display:grid}.timer-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.number-line-page{gap:18px;padding:18px;display:grid}.number-line-controls{border:2px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;padding:16px;display:grid}.number-line-stage{border:2px solid var(--line);background:var(--surface);border-radius:8px;align-content:center;gap:34px;min-height:calc(100vh - 230px);padding:34px;display:grid;position:relative}.ratio-controls{grid-template-columns:repeat(5,minmax(140px,1fr))}.ratio-summary{border:2px solid var(--primary);background:color-mix(in srgb, var(--primary) 12%, #fff);color:var(--primary-dark);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 16px;font-size:1.08rem;font-weight:800;display:flex}.ratio-summary strong{font-size:1.22rem}.ratio-track{cursor:default}.ratio-highlight .number-line-tick-mark{background:var(--warning);width:8px}.ratio-highlight .number-line-tick-label{border:2px solid var(--warning);background:var(--surface);color:var(--text);border-radius:8px;padding:4px 8px;font-size:1.08rem}.ratio-guide{z-index:1;pointer-events:none;background:#d89028a6;border-radius:999px;width:4px;position:absolute;top:118px;bottom:82px;transform:translate(-50%)}.ratio-guide span{border:2px solid var(--warning);background:var(--surface);color:var(--text);white-space:nowrap;border-radius:8px;padding:4px 8px;font-size:.9rem;font-weight:900;position:absolute;top:-34px;left:50%;transform:translate(-50%)}.ratio-guide-target{background:#245caa8c}.ratio-guide-target span{border-color:var(--primary)}.number-line-row{gap:18px;display:grid}.number-line-label{color:var(--primary-dark);font-size:1.4rem;font-weight:900}.number-line-track{cursor:pointer;touch-action:none;height:150px;position:relative}.number-line-axis{background:var(--text);border-radius:999px;height:6px;position:absolute;top:68px;left:0;right:0}.number-line-tick{width:1px;position:absolute;top:40px;transform:translate(-50%)}.number-line-tick-mark{background:var(--text);border-radius:999px;width:4px;height:62px;display:block}.number-line-tick-label{color:var(--muted);white-space:nowrap;font-size:.95rem;font-weight:800;position:absolute;top:72px;left:50%;transform:translate(-50%)}.number-line-marker{border:2px solid var(--primary-dark);background:var(--primary);color:#fff;border-radius:8px;place-items:center;min-width:70px;height:52px;font-weight:900;display:grid;position:absolute;top:6px;transform:translate(-50%);box-shadow:0 10px 20px #21252d2e}.number-line-marker:after{background:var(--primary);content:"";border-radius:999px;width:6px;height:22px;position:absolute;bottom:-22px;left:50%;transform:translate(-50%)}.big-button{min-width:140px;min-height:64px;padding:14px 22px;font-size:1.1rem}@media (max-width:700px){.app-page,.form-page,.board-shell,.timer-page{padding:14px}.tool-header{position:relative}.tool-button,.small-button,.big-button,.toolbar,.timer-actions{width:100%}.timer-inputs,.expression-panel,.ratio-controls,.number-line-controls{grid-template-columns:1fr}.fraction-board{--whole-width:calc(100vw - 60px);padding:14px}}
