.ip-root{--c-matematik: var(--c-fizik, var(--accent))}.ip-canvas{background:var(--bg);min-height:320px}.ip-stage{position:relative;width:100%;height:100%;min-height:inherit}.ip-stage>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;color:var(--ink)}@media(max-width:899px){.ip-canvas{height:90vw;min-height:300px}}.ip-hatch-line{stroke:currentColor;stroke-opacity:.3;stroke-width:1.5}.ip-ground{stroke:currentColor;stroke-opacity:.6;stroke-width:2}.ip-ramp{fill:var(--bg-card);stroke:currentColor;stroke-width:2;stroke-linejoin:round}.ip-angle-arc{fill:none;stroke:var(--c-fizik, #0891b2);stroke-width:2}.ip-angle-text{fill:var(--c-fizik, #0891b2);font-size:14px;font-weight:700}.ip-dim{stroke:currentColor;stroke-opacity:.35;stroke-dasharray:3 4}.ip-dim-text{fill:currentColor;fill-opacity:.6;font-size:12px;font-style:italic}.ip-block{fill:color-mix(in srgb,#f97316 18%,var(--bg-card));stroke:#f97316;stroke-width:2}.ip-block-text{fill:currentColor;font-weight:700}.ip-v-weight line,.ip-v-normal line,.ip-v-friction line,.ip-v-push line,.ip-v-part line{stroke-width:3;stroke-linecap:round}.ip-v-weight line{stroke:currentColor}.ip-v-weight polygon,.ip-v-weight text{fill:currentColor}.ip-v-normal line{stroke:#6366f1}.ip-v-normal polygon,.ip-v-normal text{fill:#6366f1}.ip-v-friction line{stroke:#ef4444}.ip-v-friction polygon,.ip-v-friction text{fill:#ef4444}.ip-v-push line{stroke:#16a34a}.ip-v-push polygon,.ip-v-push text{fill:#16a34a}.ip-v-part line{stroke:#f97316;stroke-width:2;stroke-dasharray:5 4}.ip-v-part polygon,.ip-v-part text{fill:#f97316}g[class^=ip-v-] text{font-size:13px;font-weight:700}.ip-guide{stroke:currentColor;stroke-opacity:.25;stroke-dasharray:2 4}.ip-handle{fill:var(--c-fizik, #0891b2);fill-opacity:.15;stroke:var(--c-fizik, #0891b2);stroke-width:2;cursor:grab;touch-action:none}.ip-handle.is-dragging{cursor:grabbing;fill-opacity:.3}.ip-state{position:absolute;top:.75rem;left:.75rem;padding:.3rem .8rem;border-radius:999px;font-size:.85rem;font-weight:600;background:var(--bg-card);border:1px solid var(--line);color:var(--ink)}.ip-state--asagi{color:#ef4444}.ip-state--yukari{color:#16a34a}.ip-note{margin-left:.35rem;font-size:.72rem;font-weight:500;color:var(--ink-soft)}.ip-bare{display:flex;flex-direction:column;gap:.35rem}.ip-help{font-size:.78rem;color:var(--ink-soft)}.ip-help b{color:var(--ink);font-variant-numeric:tabular-nums}.ip-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}.ip-chip{padding:.35rem .3rem;border-radius:999px;border:1px solid var(--line);background:var(--bg-card);color:var(--ink);font:inherit;font-size:.8rem;cursor:pointer}.ip-chip:hover{border-color:var(--c-fizik, var(--accent))}.ip-chip.is-active{background:var(--c-fizik, var(--accent));border-color:var(--c-fizik, var(--accent));color:var(--bg-card)}.ip-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.ip-btn{padding:.5rem 1rem;border-radius:999px;border:1px solid var(--line);background:var(--bg-card);color:var(--ink);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}.ip-btn--primary{background:var(--c-fizik, var(--accent));border-color:transparent;color:var(--bg-card)}.ip-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink-soft);cursor:pointer}.ip-chip:focus-visible,.ip-btn:focus-visible{outline:2px solid var(--c-fizik, var(--accent));outline-offset:2px}@media(min-width:900px){.cp-viewer--full .ip-root{grid-template-columns:minmax(0,1fr) minmax(360px,420px);height:auto}.cp-viewer--full .ip-root .interactive-readout,.cp-viewer--full .ip-root .interactive-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-viewer--full .ip-root .interactive-controls{gap:.6rem 1.25rem}.cp-viewer--full .ip-root .ip-span{grid-column:1 / -1}.cp-viewer--full .ip-root .interactive-readout-value{min-width:0}.cp-viewer--full .ip-root .interactive-side{overflow:visible}.cp-viewer--full .ip-root .ip-canvas{height:auto;min-height:clamp(380px,32vw,480px)}.cp-viewer--full .ip-root .ip-stage{position:relative}}.cp-viewer.is-fullscreen .ip-root .ip-canvas{height:100%}
