:root{--bg: #000000;--bg-card: #0b0b0b;--bg-card-2: #141414;--bg-hover: #1a1a1a;--border: #262626;--border-2: #3a3a3a;--border-3: #525252;--text: #ffffff;--text-2: #d4d4d4;--text-muted: #888888;--text-dim: #555555;--brown: #b08968;--brown-soft: #7a5f46;--brown-bright:#d4a574;--brown-dim: #4a3828;--series-ours: #b08968;--series-ip: #e5e5e5;--good: #d4d4d4;--bad: #888888;--mono: "SF Mono", ui-monospace, "Menlo", "Consolas", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,PingFang SC,Hiragino Sans GB,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{padding:24px 28px 48px}.root{max-width:1280px;margin:0 auto}.password-page{min-height:calc(100vh - 72px);display:grid;place-items:center}.password-card{width:min(440px,100%);padding:28px 28px 22px;border:1px solid var(--border);border-top:2px solid var(--brown);background:radial-gradient(circle at top right,rgba(176,137,104,.18),transparent 34%),var(--bg-card);box-shadow:0 24px 80px #00000073}.password-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:10px}.password-logo{width:78px;height:auto;display:block;flex:0 0 auto;margin-top:0}.password-kicker{margin-bottom:0;color:var(--brown-bright);font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}.password-card h1{margin-bottom:10px;color:var(--text);font-family:var(--mono);font-size:24px;font-weight:500;letter-spacing:-.02em}.password-card p{margin-bottom:22px;color:var(--text-muted);font-size:13px;line-height:1.7}.password-label{display:block;margin-bottom:8px;color:var(--text-2);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.password-input{width:100%;height:42px;padding:0 12px;border:1px solid var(--border-2);border-radius:0;outline:none;background:#050505;color:var(--text);font-family:var(--mono);font-size:16px}.password-input:focus{border-color:var(--brown);box-shadow:0 0 0 2px #b0896838}.password-error{margin-top:10px;color:#f2b8b5;font-family:var(--mono);font-size:11px}.password-submit{width:100%;height:42px;margin-top:16px;border:1px solid var(--brown);background:var(--brown);color:#000;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.password-submit:hover{background:var(--brown-bright)}.password-card .password-contact{margin:14px 0 0;color:var(--text-muted);font-size:13px;line-height:1.6}.password-card .password-contact a{color:var(--brown-bright);text-decoration:none;border-bottom:0}.password-card .password-contact a:hover{color:var(--brown)}.password-note{margin-top:14px;color:var(--text-dim);font-size:11px;line-height:1.6}.password-note code{color:var(--text-muted);font-family:var(--mono)}.header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--border)}.header h1{font-size:26px;font-weight:600;letter-spacing:-.01em;color:var(--text);line-height:1.15;font-family:var(--mono);text-transform:uppercase}.sample-picker{display:flex;align-items:stretch;margin-bottom:18px;border:1px solid var(--border);background:var(--bg-card)}.sample-picker-label{padding:0 18px;display:flex;align-items:center;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);border-right:1px solid var(--border);background:var(--bg-card-2)}.sample-strip{display:flex;flex:1;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.sample-strip::-webkit-scrollbar{display:none}.sample-chip{flex:1 0 auto;min-width:60px;padding:10px 6px;background:transparent;border:none;border-right:1px solid var(--border);color:var(--text-muted);font-family:var(--mono);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;transition:background .12s,color .12s}.sample-chip:last-child{border-right:none}.sample-chip:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.sample-chip.active{background:var(--brown);color:#000}.sample-chip.active .sample-chip-delta{color:#000;opacity:.75}.sample-chip:disabled{cursor:not-allowed;opacity:.4}.sample-chip-idx{font-size:12px;font-weight:600;letter-spacing:.04em}.sample-chip-delta{font-size:9px;letter-spacing:.05em;color:var(--brown-bright);font-weight:500}.guide-strip{margin:-4px 0 18px;padding:11px 14px;border:1px solid var(--border);border-left:2px solid var(--brown);background:color-mix(in srgb,var(--bg-card) 88%,var(--brown-dim));color:var(--text-muted);font-size:12px;line-height:1.6}.guide-strip b{color:var(--text-2);font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;margin-right:6px}.metrics{background:var(--bg-card);border:1px solid var(--border);padding:22px 28px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:18px}.mcard{text-align:left;padding:2px 24px;position:relative}.mcard:first-child{padding-left:0}.mcard+.mcard:before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:var(--border)}.mlabel{font-size:10px;color:var(--text-muted);margin-bottom:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;font-family:var(--mono)}.mval{font-size:30px;font-weight:500;color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1;font-family:var(--mono)}.mval.good{color:var(--brown-bright)}.mval.bad{color:var(--text-2)}.phase-bar{display:flex;gap:0;align-items:stretch;margin-bottom:16px;border:1px solid var(--border);background:var(--bg-card)}.chip{padding:9px 14px;font-size:10px;font-weight:500;transition:background .15s,color .15s;background:transparent;color:var(--text-dim);border-right:1px solid var(--border);letter-spacing:.08em;text-transform:uppercase;font-family:var(--mono);flex:1;text-align:center}.chip:last-child{border-right:none}.chip.active{background:var(--brown);color:#000}.sep{display:none}.controls{display:flex;align-items:center;gap:0;margin-bottom:16px;border:1px solid var(--border);background:var(--bg-card)}.controls>*+*{border-left:1px solid var(--border)}.btn{padding:11px 20px;border:none;font-size:11px;cursor:pointer;background:transparent;color:var(--text-2);font-family:var(--mono);transition:background .12s,color .12s;letter-spacing:.08em;text-transform:uppercase;font-weight:500}.btn:hover{background:var(--bg-hover);color:var(--text)}.btn.primary{background:var(--brown);color:#000;font-weight:600}.btn.primary:hover{background:var(--brown-bright);color:#000}.btn:disabled{opacity:.3;cursor:not-allowed;background:transparent}.btn:disabled:hover{background:transparent;color:var(--text-2)}.controls .step-counter{margin-left:auto;padding:11px 18px;font-size:10px;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.controls .step-counter strong{color:var(--brown-bright);font-weight:500}.cmap-picker{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;height:100%;font-family:var(--mono)}.cmap-picker-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.cmap-swatch{width:56px;height:12px;border:1px solid var(--border-2);display:inline-block;flex:0 0 auto}.cmap-select{font-size:10.5px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;background:var(--bg-card);color:var(--text);border:1px solid var(--border-2);padding:6px 26px 6px 10px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:border-color .12s,color .12s}.cmap-select:hover{border-color:var(--brown-soft);color:var(--text)}.cmap-select:focus{outline:none;border-color:var(--brown)}.cmap-swatch-ylorbr{background:linear-gradient(to right,#f7ebc8,#f6d98a,#f8bb59 38%,#f7943d 52%,#ef6c2f,#e24a33 72%,#c92f4b 83%,#9e1f55 92%,#851e53)}.cmap-swatch-inferno{background:linear-gradient(to right,#000004,#280b54,#65156e,#9f2a63,#d44842,#f57d15,#fcd250,#fcffa4)}.cmap-swatch-viridis{background:linear-gradient(to right,#440154,#404387,#29788e,#22a884,#79d151,#fde725)}.cmap-swatch-plasma{background:linear-gradient(to right,#0d0887,#5402a3,#8b0aa5,#b93289,#db5c68,#f48849,#febc2c,#f0f921)}.cmap-swatch-magma{background:linear-gradient(to right,#000004,#1c1044,#4f127b,#812581,#b5367a,#e55064,#fb8761,#fcfdbf)}.cmap-swatch-turbo{background:linear-gradient(to right,#30123b,#3c479f,#1badde,#31e0a5,#9cf647,#e8c820,#f36615,#7a0402)}.cmap-swatch-parula{background:linear-gradient(to right,#352a87,#1962d5,#0f89da,#24c08e,#7ac344,#ebb81d,#f9fb0e)}.cmap-swatch-jet{background:linear-gradient(to right,#00008f,#00f,#00bfff,#80ff80,#ff0,#ff6400,#8f0000)}.cmap-swatch-hot{background:linear-gradient(to right,#000,#c80000,#ff8200,#ffff50,#fff)}.cmap-swatch-cool{background:linear-gradient(to right,#0ff,#8080ff,#f0f)}.cmap-swatch-hsv{background:linear-gradient(to right,red,#ffbf00,#00ff40,#0ff,#0040ff,#ff00bf,red)}.cmap-swatch-spring{background:linear-gradient(to right,#f0f,#ff8080,#ff0)}.cmap-swatch-summer{background:linear-gradient(to right,#008066,#80bf66,#ff6)}.cmap-swatch-autumn{background:linear-gradient(to right,red,#ff8000,#ff0)}.cmap-swatch-winter{background:linear-gradient(to right,#00f,#0080bf,#00ff80)}.cmap-swatch-gray{background:linear-gradient(to right,#000,#fff)}.cmap-swatch-bone{background:linear-gradient(to right,#000,#38384f,#70748e,#a8c4c4,#fff)}.cmap-swatch-copper{background:linear-gradient(to right,#000,#503220,#9f6340,#ef9560,#ffc77f)}.cmap-swatch-pink{background:linear-gradient(to right,#1e0000,#735252,#c79090,#e7cdb8,#fff)}select{font-size:11.5px;border:1px solid var(--border-2);padding:8px 10px;background:var(--bg-card);color:var(--text);font-family:inherit}.panels-pairs{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.panel-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}@media (max-width: 820px){.panel-pair{grid-template-columns:1fr}}.panels-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px;align-items:stretch}.panel{background:var(--bg-card);border:1px solid var(--border);padding:0;display:flex;flex-direction:column}.panel.highlight-ours{border-top:2px solid var(--brown)}.panel.highlight-ip{border-top:2px solid var(--series-ip)}.panel.highlight-gt{border-top:2px solid var(--border-3)}.phead{height:72px;padding:14px 16px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:12px;row-gap:2px}.ptitle{grid-column:1;grid-row:1;font-size:16px;font-weight:500;color:var(--text);letter-spacing:.01em;line-height:1.2;font-family:var(--mono)}.psub{grid-column:1;grid-row:2;font-size:11px;color:var(--text-muted);margin-top:4px;letter-spacing:.08em;font-family:var(--mono);text-transform:uppercase}.gt-mode-toggle{grid-column:2;grid-row:1 / span 2;display:inline-flex;align-items:center;gap:2px;background:var(--bg-card-alt, rgba(255, 255, 255, .04));border:1px solid var(--border);border-radius:6px;padding:2px}.gt-mode-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background .12s ease,color .12s ease}.gt-mode-chip:hover{color:var(--text)}.gt-mode-chip.active{background:var(--bg, rgba(255, 255, 255, .1));color:var(--text)}.gt-mode-swatch{width:8px;height:8px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1px #0006}.gt-mode-swatch.swatch-square{border-radius:1px}.panel .square-canvas{margin:16px;width:calc(100% - 32px)}.panel-chart{background:var(--bg-card);border:1px solid var(--border);padding:18px 20px 20px}canvas{display:block}.square-canvas{width:100%;aspect-ratio:1;height:auto;background:#0a0907;border:1px solid var(--border)}.note{font-size:10px;color:var(--text-dim);margin-top:10px;line-height:1.6;letter-spacing:.04em;font-family:var(--mono);text-transform:uppercase}.note b{color:var(--brown-bright);font-weight:500}.legend{display:flex;gap:18px;align-items:center;font-size:10px;color:var(--text-muted);margin-top:10px;flex-wrap:wrap;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase}.ldot{width:8px;height:8px;display:inline-block;margin-right:8px;vertical-align:middle}.lline{width:22px;display:inline-block;margin-right:8px;vertical-align:middle}.panel-rmse{font-size:10.5px;color:var(--text-muted);margin-top:8px;font-variant-numeric:tabular-nums;letter-spacing:.06em;font-family:var(--mono);text-transform:uppercase}.panel-rmse b{font-weight:600;color:var(--brown-bright)}.rmse-explainer{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);font-size:11px;line-height:1.7;color:var(--text-muted);letter-spacing:.02em}.rmse-primary{color:var(--text-muted)}.rmse-explainer b{color:var(--brown-bright);font-weight:600;letter-spacing:.1em;font-family:var(--mono);text-transform:uppercase;font-size:10.5px;margin-right:4px}.rmse-details{margin-top:8px}.rmse-details summary{width:fit-content;cursor:pointer;color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.rmse-details summary:hover{color:var(--text-muted)}.rmse-details[open]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.rmse-details[open] summary{flex-basis:100%}.rmse-formula{font-family:var(--mono);font-size:10.5px;color:var(--text);background:var(--bg-card-2);padding:2px 10px;border:1px solid var(--border-2);margin-left:2px;white-space:nowrap}.rmse-sep{color:var(--border-3);margin:0 8px;font-weight:700}.three-btn{border-color:var(--brown-soft);color:var(--brown-bright)}.three-btn:hover:not(:disabled){background:var(--brown-dim);border-color:var(--brown)}.three-btn:disabled{opacity:.32;cursor:not-allowed}.three-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px;align-items:stretch}.three-panel{padding:12px 12px 10px;min-width:0;display:flex;flex-direction:column}.three-panel .ptitle,.three-panel .psub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.three-host{flex:0 0 auto;height:clamp(320px,34vw,460px);width:100%;background:#050505;border:1px solid var(--border);overflow:hidden;cursor:grab}.three-host:active{cursor:grabbing}.three-hint{margin-top:10px;min-height:44px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--text-muted);line-height:1.6;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.tier-sw{width:10px;height:10px;border:1px solid var(--border-2);display:inline-block;vertical-align:middle;margin-right:2px}.tier-outer{background:#febc5573}.tier-inner{background:#993404}.tier-low{background:#440154d9}.tier-mid{background:#29788e}.tier-hi{background:#fde725}.heat-low{background:#4b0c6b}.heat-mid{background:#c94452}.heat-hi{background:#fcffa4}.tier-sep{color:var(--border-3);margin:0 2px}.geo-legend{row-gap:6px}.geo-leg-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.geo-sw{width:10px;height:10px;border:1px solid rgba(0,0,0,.3);display:inline-block}.three-wrap{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}.step-scrubber{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--brown-soft);padding:12px 16px 14px;display:flex;flex-direction:column;gap:10px}.step-scrubber-label{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}.step-scrubber-title{color:var(--text-muted)}.step-scrubber-value{color:var(--text-2);font-variant-numeric:tabular-nums}.step-scrubber-value strong{color:var(--brown-bright);font-weight:600;font-size:14px;margin-right:4px}.step-chips{display:grid;grid-template-columns:repeat(11,1fr);gap:0}.step-chip{min-width:0;padding:5px 4px;text-align:center;background:var(--bg-card-2);border:1px solid var(--border);border-right:none;color:var(--text-muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;cursor:pointer;transition:all .12s ease;font-variant-numeric:tabular-nums}.step-chip:last-child{border-right:1px solid var(--border)}.step-chip:hover:not(.active){color:var(--text-2);border-color:var(--border-2);background:var(--bg-hover)}.step-chip.active{color:#1a1208;background:var(--brown-bright);border-color:var(--brown);font-weight:600}.step-range-wrap{padding:0 calc(100% / 22);box-sizing:border-box}.step-range{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:2px;background:var(--border-2);outline:none;cursor:pointer;display:block}.step-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--brown-bright);border:1px solid var(--brown);border-radius:50%;cursor:pointer}.step-range::-moz-range-thumb{width:14px;height:14px;background:var(--brown-bright);border:1px solid var(--brown);border-radius:50%;cursor:pointer}.no3d-panel .no3d-frame{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:clamp(320px,34vw,460px);background:#0a0a0a;border:1px dashed var(--border-2);overflow:hidden}.no3d-panel .no3d-frame canvas{max-width:86%;max-height:86%;opacity:.8;filter:saturate(.85)}.no3d-stamp{position:absolute;top:10px;left:10px;right:10px;text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#f4b77a;padding:6px 10px;border:1px solid rgba(180,120,60,.35);background:#140c06b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2;pointer-events:none}.no3d-hint{color:var(--text-2);text-transform:none;letter-spacing:0;line-height:1.55}.colorbar{margin:-4px 16px 14px;display:flex;flex-direction:column;gap:3px}.colorbar-canvas{width:100%;height:11px;display:block;border:1px solid var(--border);image-rendering:pixelated}.colorbar-ticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;color:var(--text-muted);font-variant-numeric:tabular-nums;letter-spacing:.04em}.colorbar-label{font-family:var(--mono);font-size:9px;color:var(--text-dim);letter-spacing:.14em;text-transform:uppercase;margin-top:1px;text-align:center}
