.page-shell.svelte-1upolw7{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;position:relative}.proto-badge.svelte-1upolw7{position:absolute;top:.5rem;right:.75rem;z-index:100;font-size:.62rem;font-weight:700;color:#b45309;background:#fef3c7;padding:.18rem .55rem;border-radius:999px;border:1px solid #fcd34d;text-transform:uppercase;letter-spacing:.05em;pointer-events:none}.page-shell.svelte-1upolw7 .tool-layout{height:auto;flex:1;min-height:0}@media (max-width: 699px){.page-shell.svelte-1upolw7{overflow-y:auto}}.nav-bar.svelte-1upolw7{padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;background:#fff}.arena.svelte-1upolw7{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;height:100%;justify-content:center;padding:.75rem}.stage.svelte-1upolw7{position:relative;width:100%;max-width:480px;aspect-ratio:1 / 1;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}.stage.svelte-1upolw7 .sketch-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.tetra-holder.svelte-1upolw7{position:absolute;left:3%;right:3%;top:51%;bottom:3%;z-index:1}.overlay.svelte-1upolw7{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.frame.svelte-1upolw7{fill:none;stroke:#e5e7eb;stroke-width:1}.panel-title.svelte-1upolw7{fill:#6b7280;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.hint.svelte-1upolw7{fill:#9ca3af;font-size:12px}.tick.svelte-1upolw7{stroke:#374151;stroke-width:1.1}.side.svelte-1upolw7{stroke-width:3.5;stroke-linecap:round}.joint.svelte-1upolw7{fill:#1a1a1a}.gap.svelte-1upolw7{stroke:#b91c1c;stroke-width:1.5;stroke-dasharray:4 3}.maptri.svelte-1upolw7{fill:none;stroke:#9aa5ad;stroke-width:1.2}.count-num.svelte-1upolw7{font-size:34px;font-weight:800;fill:#145666}.count-word.svelte-1upolw7{font-size:12px;font-weight:700;fill:#6b7280}.corner.svelte-1upolw7{font-size:11px;font-weight:800}.piece-label.svelte-1upolw7{font-size:10px;font-weight:800}.cut-label.svelte-1upolw7{font-size:10px;font-weight:700;fill:#374151;font-style:italic}.axis.svelte-1upolw7{fill:#6b7280;font-size:10px;font-weight:700;font-style:italic}.ticknum.svelte-1upolw7{fill:#9ca3af;font-size:8px;font-weight:600}.metric.svelte-1upolw7{fill:#374151;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.cur.svelte-1upolw7{fill:#cbd5e1;stroke:#b45309;stroke-width:1.6}.cur.valid.svelte-1upolw7{fill:#145666}.readout.svelte-1upolw7{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;justify-content:center}.ratio.svelte-1upolw7{display:inline-flex;align-items:baseline;gap:.3rem}.ratio-num.svelte-1upolw7{font-size:1.3rem;font-weight:800;color:#145666;font-variant-numeric:tabular-nums}.ratio-word.svelte-1upolw7{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.prob.svelte-1upolw7{font-size:.9rem;font-weight:700;color:#6b7280;font-variant-numeric:tabular-nums}.prob.svelte-1upolw7 sup:where(.svelte-1upolw7){font-size:.7em}.controls.svelte-1upolw7{display:flex;flex-direction:column;gap:.9rem}.control-group.svelte-1upolw7{display:flex;flex-direction:column;gap:.5rem}.control-label.svelte-1upolw7{font-size:.72rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.03em}.drop-head.svelte-1upolw7{display:flex;justify-content:space-between;align-items:baseline}.drop-count.svelte-1upolw7{font-size:.85rem;font-weight:800;color:#145666;font-variant-numeric:tabular-nums}.drop-range.svelte-1upolw7{width:100%;accent-color:#145666;cursor:pointer}.drop-btn.svelte-1upolw7{width:100%;padding:.5rem;border:2px solid #145666;background:#145666;color:#fff;font-size:.85rem;font-weight:700;border-radius:8px;cursor:pointer;transition:background .12s}.drop-btn.svelte-1upolw7:hover:not(:disabled){background:#0f3a42}.drop-btn.svelte-1upolw7:disabled{opacity:.5;cursor:default}.csv-btn.svelte-1upolw7{display:flex;align-items:center;justify-content:center;gap:.3rem;width:100%;padding:.4rem;border:1px solid #d1d5db;background:#fff;color:#6b7280;font-size:.75rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .12s}.csv-btn.svelte-1upolw7:hover:not(:disabled){border-color:#145666;color:#145666}.csv-btn.svelte-1upolw7:disabled{opacity:.4;cursor:default}@media (prefers-reduced-motion: reduce){.drop-btn.svelte-1upolw7{transition:none}}
