:root{--ink: #0a0e1a;--panel: #111728;--panel2: #0d1322;--line: #1f2940;--fog: #8290ae;--chalk: #e8ecf7;--amp: #7cf5d0;--phase: #f3b562;--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--ink);color:var(--chalk)}body{font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.m-app{min-height:100dvh;display:flex;flex-direction:column}.m-top{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}.m-logo{width:34px;height:34px}.m-top-text{display:flex;flex-direction:column;line-height:1.2}.m-top-text b{font-size:16px}.m-top-text span{font-size:12px;color:var(--fog)}.m-screen{flex:1;padding:12px 14px calc(84px + var(--safe-b));display:flex;flex-direction:column;gap:12px}.m-tabs{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:8px 8px calc(8px + var(--safe-b));background:#0a0e1af0;border-top:1px solid var(--line);backdrop-filter:blur(8px)}.m-tabs button{min-height:52px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--fog);font-size:14px;font-weight:600;padding:0 4px}.m-tabs button.on{background:var(--amp);color:#06251d;border-color:var(--amp)}.m-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px}.m-h{margin:0;font-size:18px}.m-p{margin:0;color:var(--chalk);font-size:15px}.m-p.fog{color:var(--fog);font-size:13px}.m-btns{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.m-btns.three{grid-template-columns:repeat(3,1fr)}.m-btns.four{grid-template-columns:repeat(4,1fr)}.m-btn{min-height:52px;border-radius:14px;border:1px solid var(--line);background:var(--panel2);color:var(--chalk);font-size:17px;font-weight:600;padding:8px 10px}.m-btn.primary{background:var(--amp);color:#06251d;border-color:var(--amp)}.m-btn.warm{border-color:var(--phase);color:var(--phase)}.m-btn:disabled{opacity:.4}.m-btn:active{transform:scale(.97)}.m-slider{display:flex;flex-direction:column;gap:4px}.m-slider label{display:flex;justify-content:space-between;font-size:14px;color:var(--fog)}.m-slider label b{color:var(--chalk);font-family:ui-monospace,monospace}.m-slider input[type=range]{width:100%;height:44px;accent-color:var(--amp)}.m-sphere{display:block;width:min(100%,260px);margin:0 auto}.m-spheres{display:grid;grid-template-columns:1fr 1fr;gap:8px}.m-spheres .m-sphere{width:100%}.m-sphere .axis{stroke:var(--line);stroke-width:1}.m-sphere .rim{fill:none;stroke:var(--fog);stroke-width:1;opacity:.6}.m-sphere .eq{fill:none;stroke:var(--fog);stroke-width:1;opacity:.35}.m-sphere .vec{stroke:var(--amp);stroke-width:3;stroke-linecap:round}.m-sphere .tip{fill:var(--amp)}.m-sphere .lab{fill:var(--fog);font-size:11px;font-family:ui-monospace,monospace}.m-sphere .gone{fill:var(--phase);font-size:12px;text-anchor:middle}.m-probs{display:flex;gap:10px;font-family:ui-monospace,monospace;font-size:14px;color:var(--fog)}.m-probs b{color:var(--chalk)}.m-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:40px;align-items:center}.m-chip{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font:700 20px ui-monospace,monospace;border:1px solid var(--line);animation:m-pop .2s ease-out}.m-chip.wide{width:auto;padding:0 10px;letter-spacing:2px}.m-chip-0{color:var(--amp)}.m-chip-1{color:var(--phase)}.m-chip.pair.same{border-color:var(--amp)}.m-chip.pair.diff{border-color:var(--phase)}.m-chips .cap{color:var(--fog);font-size:13px}@keyframes m-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.m-bars{display:flex;flex-direction:column;gap:6px}.m-bar-row{display:grid;grid-template-columns:34px 1fr 40px;gap:8px;align-items:center;font-family:ui-monospace,monospace;font-size:14px}.m-bar{height:18px;border-radius:6px;background:var(--panel2);overflow:hidden}.m-bar i{display:block;height:100%;background:var(--amp);transition:width .35s ease-out}.m-bar-row:nth-child(2n) .m-bar i{background:var(--phase)}.m-seq{display:flex;flex-wrap:wrap;gap:6px;min-height:36px;align-items:center}.m-seq span{padding:6px 10px;border-radius:8px;border:1px solid var(--line);font:600 14px ui-monospace,monospace;color:var(--chalk)}.m-seq .cap{border:none;color:var(--fog);font-weight:400;padding:0}.m-code{margin:0;padding:10px 12px;border-radius:10px;background:var(--panel2);font:13px/1.5 ui-monospace,monospace;color:var(--fog);white-space:pre-wrap}.m-note{margin:0;border-left:2px solid var(--amp);padding-left:10px;font-size:14px;color:var(--chalk)}.m-foot{text-align:center;font-size:13px;color:var(--fog)}.m-foot a{color:var(--amp);font-weight:600}.m-foot p{margin:0 0 8px}.m-foot-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px}.m-foot-links a{display:inline-block;padding:8px 12px;border:1px solid var(--line);border-radius:10px}.m-foot-cont{font-size:12px}
