*{box-sizing:border-box}html,body{background:#000;height:100%;margin:0}.tp{--fg:#ecebe6;--muted:#ffffff80;--faint:#ffffff47;--line:#ffffff24;--panel:#131316;--serif:"EB Garamond", Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;height:100vh;color:var(--fg);font-family:var(--sans);-webkit-tap-highlight-color:transparent;background:#000;flex-direction:column;font-size:14px;line-height:1.4;display:flex}.tp sub,.tp sup{font-size:.75em;line-height:0}.tp-header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 22px;padding:12px 18px 10px;display:flex}.tp-title{flex-direction:column;gap:2px;min-width:200px;display:flex}.tp-name{font-family:var(--serif);letter-spacing:.01em;font-size:22px;font-style:italic}.tp-tagline{color:var(--muted);font-size:12.5px}.tp-menu{flex-wrap:wrap;gap:8px;display:flex}.tp select{color:var(--fg);border:1px solid var(--line);font:inherit;background:#1a1a1e;border-radius:6px;max-width:100%;padding:5px 8px;font-size:13px}.tp-legend-box{align-items:center;gap:10px;display:flex}.tp-legend{width:64px;height:64px;display:block}.tp-legend-text{color:var(--muted);flex-direction:column;gap:4px;font-size:12.5px;display:flex}.tp-zeta{color:var(--fg)}.tp-zbtns button,.tp-seg button,.tp-markbtn,.tp-tab{color:var(--fg);border:1px solid var(--line);font:inherit;cursor:pointer;background:#1a1a1e;border-radius:6px;padding:4px 10px;font-size:13px}.tp-zbtns{gap:4px;display:inline-flex}.tp-zbtns button{padding:2px 8px}.tp-zbtns button:disabled{opacity:.35;cursor:default}.tp-tabs{gap:6px;margin-left:auto;display:flex}.tp-tab[aria-selected=true],.tp-seg button[aria-pressed=true],.tp-markbtn[aria-pressed=true]{background:var(--fg);color:#000;border-color:var(--fg)}.tp-seg{gap:6px;display:inline-flex}.tp-body{flex:1;min-height:0;display:flex}.tp-waves,.tp-self,.tp-nested{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 340px;gap:16px;min-height:0;padding:14px 18px 18px;display:grid}.tp-waves[hidden],.tp-self[hidden],.tp-nested[hidden]{display:none}.tp-main{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.tp-torus-wrap,.tp-self-wrap{background:var(--panel);border-radius:8px;flex:1;min-height:240px;position:relative;overflow:hidden}.tp-torus,.tp-selfgrid,.tp-nestgrid{cursor:crosshair;width:100%;height:100%;display:block;position:absolute;inset:0}.tp-caption{color:var(--muted);font-size:12.5px}.tp-side{flex-direction:column;gap:12px;min-width:0;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.tp-panel{background:var(--panel);border-radius:8px;padding:8px}.tp-label{color:var(--muted);margin-bottom:6px;font-size:12px}.tp-picker,.tp-scatter{aspect-ratio:1;cursor:crosshair;width:100%;display:block}.tp-picker{width:min(100%,220px);margin:0 auto}.tp-readout,.tp-formula{flex-direction:column;gap:6px;font-size:13px;display:flex}.tp-fact{overflow-wrap:anywhere}.tp-fact b{font-weight:600}.tp-muted{color:var(--muted)}.tp-curve{color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:4px;font-size:12px}.tp-hover{border-left:2px solid var(--faint);padding:6px 8px}.tp-swatch{vertical-align:-.1em;border-radius:3px;width:.9em;height:.9em;margin:0 .2em;display:inline-block}.tp-mat{border-left:1px solid var(--fg);border-right:1px solid var(--fg);vertical-align:middle;font-family:var(--mono);text-align:center;border-radius:4px;grid-template-columns:auto auto;gap:0 10px;margin:0 2px;padding:0 6px;display:inline-grid}@media (width<=859px){.tp{height:auto;min-height:100%}.tp-side{overflow-y:visible}}.tp-waves.tp-stacked,.tp-self.tp-stacked,.tp-nested.tp-stacked{grid-template-columns:minmax(0,1fr);padding:12px}.tp-stacked .tp-torus-wrap{flex:none;min-height:0}.tp-stacked .tp-self-wrap{aspect-ratio:1;flex:none;min-height:0}.tp-stacked .tp-side{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tp-stacked .tp-side>.tp-readout,.tp-stacked .tp-side>.tp-formula,.tp-stacked .tp-side>.tp-seg,.tp-stacked .tp-side>.tp-bar{grid-column:1/-1}.tp-stacked .tp-picker{width:100%}@media (width<=480px){.tp-stacked .tp-side{grid-template-columns:1fr}.tp-tabs{margin-left:0}}.tp-palsel{margin-left:6px}.tp-bar{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}
