:root{color:#1b1a17;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 20% 0,#ffd28566,#0000 34%),linear-gradient(135deg,#fff8ea 0%,#f6efe1 48%,#efe4ce 100%);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}*{box-sizing:border-box}main{color:#1b1a17;min-height:100vh;padding:40px;overflow-x:hidden}.language-picker{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffaefeb;border:1px solid #ded3bd;border-radius:999px;gap:4px;padding:5px;display:inline-flex;position:fixed;top:18px;left:18px;box-shadow:0 10px 28px #372a1814}.language-picker button{color:#5b5246;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:8px 12px;font-size:13px;line-height:1;display:inline-flex}.language-picker button.selected{color:#fff8ea;background:#1b1a17}.language-picker span{letter-spacing:.08em;font-size:11px;font-weight:900}.page-header{text-align:left;max-width:1100px;margin:0 auto 30px}.page-header h1{letter-spacing:-.06em;max-width:980px;margin:0 0 16px;font-size:clamp(36px,5vw,68px);line-height:.95}.page-header p{color:#5f5a50;max-width:850px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#9a4b00;margin:0 0 10px;font-size:12px;font-weight:800}.mode-toggle{background:#fffaefdb;border:1px solid #ded3bd;border-radius:999px;gap:6px;max-width:100%;margin-top:22px;padding:6px;display:inline-flex}.mode-toggle button{color:#5b5246;background:0 0;padding:10px 16px}.mode-toggle button.selected{color:#fff8ea;background:#1b1a17}.header-controls{flex-wrap:wrap;gap:14px;margin-top:16px;display:flex}.header-controls label{min-width:180px}select{color:#1b1a17;width:100%;font:inherit;background:#fffdf7;border:1px solid #d7c8ac;border-radius:10px;padding:9px 36px 9px 10px}.warning-note{color:#9a4b00;margin-top:12px;font-weight:700}.plot-grid,.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:1320px;margin:0 auto 22px;display:grid}.plot-card,.control-card,.result-panel{background:#fffaefdb;border:1px solid #ded3bd;border-radius:24px;min-width:0}.plot-card{padding:22px}.plot-heading{text-align:left;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px;display:flex}.plot-heading h2,.control-title h2,.result-panel h2{color:#1b1a17;overflow-wrap:anywhere;margin:0}.plot-heading p{color:#716a5d;max-width:300px;margin:0;font-size:14px}.ternary{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;min-height:430px;display:block}.triangle-bg{fill:#fff7e6}.triangle-line{fill:none;stroke:#2f2a22;stroke-width:.009px}.axis-label{fill:#5b5246;text-anchor:start;letter-spacing:.003px;font-size:.035px;font-weight:700}.axis-label.right{text-anchor:end}.axis-label.top{text-anchor:middle}.cluster-handle{cursor:grab}.cluster-handle circle{fill:#fff;fill-opacity:.38;stroke:#16120f;stroke-width:.01px;transition:fill .14s,fill-opacity .14s,transform .14s}.cluster-handle:hover circle{fill-opacity:.58}.cluster-handle text{fill:#16120f;text-anchor:middle;pointer-events:none;font-size:.035px;font-weight:900}.cluster-handle.active{cursor:grabbing}.cluster-handle.active circle{fill:#ffe3a3;fill-opacity:.62}.control-card{text-align:left;padding:20px}.control-title{justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px;display:flex}.cluster-controls{border-top:1px solid #eadfcb;align-items:end;gap:12px;padding:14px 0;display:grid}.cluster-controls.single{grid-template-columns:.8fr repeat(3,minmax(120px,1fr))}.cluster-controls.mixture{grid-template-columns:.8fr repeat(4,minmax(95px,1fr))}.cluster-controls h3{margin:0}label{color:#655b4d;text-transform:uppercase;letter-spacing:.08em;gap:6px;font-size:12px;font-weight:800;display:grid}input{box-sizing:border-box;color:#1b1a17;width:100%;font:inherit;background:#fffdf7;border:1px solid #d7c8ac;border-radius:10px;padding:9px 10px}input[type=range]{accent-color:#1b1a17;padding:0}.slider-value{color:#1b1a17;letter-spacing:0;text-transform:none;font-size:13px}.cluster-note{color:#746b5f;grid-column:2/-1;margin:-4px 0 0;font-size:13px}.cluster-note.error{color:#a43d1e}.result-panel{text-align:left;grid-template-columns:minmax(280px,1fr) auto 220px 220px;align-items:center;gap:18px;max-width:1320px;margin:0 auto;padding:22px;display:grid}.result-panel p{color:#6f665a;margin:0}button{color:#fff8ea;font:inherit;cursor:pointer;background:#1b1a17;border:0;border-radius:999px;padding:13px 20px;font-weight:800}button:disabled{opacity:.65;cursor:wait}.metric{background:#fffdf7;border:1px solid #eadfcb;border-radius:18px;gap:6px;padding:16px;display:grid}.metric span{text-transform:uppercase;letter-spacing:.12em;color:#7c7162;font-size:12px}.metric strong{color:#1b1a17;font-size:20px}@media (width<=1050px){main{padding:24px}.language-picker{max-width:1320px;margin:0 auto 18px;position:static}.plot-grid,.control-grid,.result-panel{grid-template-columns:1fr}.cluster-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.cluster-controls h3,.cluster-note{grid-column:1/-1}}@media (width<=640px){main{padding:14px}.language-picker{justify-content:center;width:100%;margin-bottom:16px}.language-picker button{flex:1;justify-content:center;padding:10px 8px}.page-header{margin-bottom:20px}.page-header h1{letter-spacing:-.045em;font-size:clamp(34px,13vw,48px);line-height:1}.page-header p{font-size:15px;line-height:1.55}.mode-toggle{border-radius:20px;grid-template-columns:1fr;width:100%;display:grid}.mode-toggle button{white-space:normal;width:100%;padding:12px 14px}.header-controls{grid-template-columns:1fr;gap:12px;display:grid}.header-controls label{min-width:0}.plot-grid,.control-grid{gap:16px;margin-bottom:16px}.plot-card,.control-card,.result-panel{border-radius:18px}.plot-card,.control-card{padding:16px}.plot-heading,.control-title{gap:10px;display:grid}.plot-heading p{max-width:none}.ternary{min-height:300px}.cluster-controls,.cluster-controls.single,.cluster-controls.mixture{grid-template-columns:1fr}.cluster-note{grid-column:1;margin-top:0}.result-panel{gap:14px;padding:16px}.result-panel button{width:100%}.metric{padding:14px}.metric strong{overflow-wrap:anywhere;font-size:18px}}
