:root{color:#173432;font-synthesis:none;--ink:#173f3d;--paper:#fffdf7;--cream:#f3efe6;--orange:#ed7b32;--acid:#c8d85a;--line:#cbd4cc;--muted:#6a7c77;background:#f3efe6;font-family:Microsoft YaHei,PingFang SC,sans-serif}*{box-sizing:border-box}body{background:var(--cream);min-width:320px;min-height:100vh;margin:0}button,select,input{font:inherit}button{cursor:pointer}body:before{content:"";pointer-events:none;opacity:.18;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E");position:fixed;inset:0}.masthead{color:#f9f4e8;background:var(--ink);border-bottom:8px solid var(--orange);grid-template-columns:150px 1fr;align-items:center;gap:38px;min-height:330px;padding:64px clamp(24px,7vw,112px) 54px;display:grid;position:relative;overflow:hidden}.masthead:after{content:"Δ";color:#0000;-webkit-text-stroke:1px #ffffff14;font:700 520px/1 Georgia,serif;position:absolute;top:-160px;right:14%;transform:rotate(8deg)}.brand-mark{border:1px solid #ffffff80;border-radius:50%;place-items:center;width:142px;height:142px;font:500 62px/1 Arial,sans-serif;display:grid;position:relative}.brand-mark:before,.brand-mark:after{content:"";background:var(--acid);position:absolute}.brand-mark:before{border-radius:50%;width:12px;height:12px;top:31px;right:8px}.brand-mark:after{width:42px;height:2px;bottom:25px;left:-20px;transform:rotate(-38deg)}.brand-mark sup{letter-spacing:.02em;white-space:nowrap;margin-left:-3px;font:500 12px/1.2 Arial,sans-serif}.eyebrow,.kicker,.card-heading span{letter-spacing:.16em;text-transform:uppercase;font:500 11px/1.2 DM Mono,monospace}.eyebrow{color:var(--acid);margin:0 0 16px}h1{letter-spacing:-.06em;margin:0;font-size:clamp(50px,7vw,104px);line-height:.9}h1 em{color:var(--orange);letter-spacing:-.02em;font:italic 600 .76em/1 Playfair Display,serif}.lede{color:#dbe3dd;max-width:680px;margin:24px 0 0;font-size:17px;font-weight:300}main{max-width:1780px;margin:0 auto;padding:0 clamp(18px,3vw,54px) 80px}.intake-panel{background:var(--paper);border:1px solid var(--line);z-index:2;grid-template-columns:84px minmax(260px,.8fr) minmax(350px,1.3fr);align-items:center;gap:34px;min-height:260px;margin-top:-22px;padding:38px 42px;display:grid;position:relative;box-shadow:0 18px 60px #1c363314}.section-index{color:var(--orange);align-self:start;font:300 42px/1 DM Mono,monospace}.section-copy h2,.control-block h2,.results-heading h2{letter-spacing:-.04em;margin:6px 0 10px;font-size:30px}.section-copy p,.results-heading p{color:var(--muted);max-width:520px;margin:0;line-height:1.8}.kicker{color:var(--orange);margin:0}.dropzone{background:#f5f8f1;border:1px dashed #85a097;align-content:center;place-items:center;gap:7px;min-height:160px;transition:all .25s;display:grid;position:relative}.dropzone:hover,.dropzone.dragging{border-color:var(--orange);background:#fff4e8;transform:translateY(-2px)}.dropzone input{opacity:0;cursor:pointer;position:absolute;inset:0}.drop-icon{color:var(--orange);font:300 38px/1 DM Mono,monospace}.dropzone strong{font-size:16px}.dropzone small{color:var(--muted)}.text-button{color:var(--ink);background:0 0;border:0;font-size:12px;position:absolute;bottom:13px;right:42px}.demo-format-panel{border-top:2px solid var(--ink);grid-column:2/-1;grid-template-columns:minmax(250px,.7fr) minmax(480px,1.3fr);gap:30px;margin-top:10px;padding-top:24px;animation:.28s ease-out reveal-panel;display:grid}.demo-format-panel.hidden{display:none}.demo-format-copy h3{margin:6px 0 9px;font-size:20px}.demo-format-copy>p:not(.kicker){color:var(--muted);margin:0;font-size:12px;line-height:1.75}.demo-format-actions{flex-wrap:wrap;gap:8px;margin-top:15px;display:flex}.demo-format-actions.hidden{display:none}.input-check-summary{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.input-check-summary>span{color:#5f726c;background:#f7f8f2;border:1px solid #c4cec7;padding:5px 7px;font:500 10px/1.2 Consolas,monospace}.input-check-summary .input-status{color:#195f45;background:#e6f3e7;border-color:#82b094;font-weight:700}.input-check-summary .input-status.warning{color:#815016;background:#fff0cf;border-color:#d2a35e}.input-check-summary .input-status.error{color:#8c2630;background:#fbe3e4;border-color:#c68087}.input-issue-list{gap:6px;max-height:145px;margin:12px 0 0;padding:0;list-style:none;display:grid;overflow:auto}.input-issue-list li{background:#eef6ec;border-left:3px solid #6aa57d;grid-template-columns:40px minmax(0,1fr);gap:7px;padding:7px 8px;font-size:11px;line-height:1.45;display:grid}.input-issue-list li.warning{color:#6d481c;background:#fff4d9;border-color:#d09235}.input-issue-list li.error{color:#812832;background:#fae6e6;border-color:#a83943}.input-issue-list b{font-size:10px}.demo-table-wrap{border:1px solid #d7ded8;max-height:265px;margin-top:0}.demo-table-wrap table{font:400 11px/1.4 Consolas,monospace}.demo-table-wrap th,.demo-table-wrap td{padding:7px 9px}.demo-table-wrap .source-row-number{z-index:2;text-align:right;color:#70807a;background:#e8ece5;border-right:1px solid #c7d0c9;width:44px;min-width:44px;position:sticky;left:0}.demo-table-wrap .source-header-row th:not(.source-row-number){color:#fff;background:var(--ink)}.demo-table-wrap td.input-warning,.demo-table-wrap th.input-warning{color:#74430d;background:#ffe4a8;box-shadow:inset 0 0 0 2px #d18a25}.demo-table-wrap td.input-error,.demo-table-wrap th.input-error{color:#7f1823;background:#f6c9cc;box-shadow:inset 0 0 0 2px #a83943}@keyframes reveal-panel{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.workspace{border:1px solid var(--line);background:var(--paper);grid-template-columns:290px minmax(0,1fr);margin-top:28px;transition:all .4s;display:grid}.workspace.hidden{display:none}.control-rail{border-right:1px solid var(--line);background:#e4e8dc;padding:36px 28px}.control-block h2{margin-bottom:28px}.control-block label{gap:8px;margin-bottom:18px;font-size:12px;font-weight:600;display:grid}select{width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #83958d;outline:none;padding:11px 2px}select:focus{border-color:var(--orange)}.group-editor{border-top:1px solid #aeb9b1;border-bottom:1px solid #aeb9b1;margin:25px 0 22px;padding:16px 0 18px}.group-editor-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.group-editor-heading>span{font-size:12px;font-weight:700}.group-editor>p{color:#5d706a;margin:7px 0 13px;font-size:11px;line-height:1.6}.inline-reset{color:#6e7e78;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:10px;text-decoration:underline}.group-map-list{gap:8px;display:grid}.group-map-row{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);align-items:center;gap:7px!important;margin:0!important;display:grid!important}.group-map-row>span{text-overflow:ellipsis;white-space:nowrap;font:500 11px/1.2 DM Mono,monospace;overflow:hidden}.group-map-row i{color:var(--orange);text-align:center;font-style:normal}.group-name-input{width:100%;min-width:0;color:var(--ink);background:#ffffff8c;border:1px solid #98aaa2;outline:none;padding:7px 8px;font:500 11px/1.2 DM Mono,monospace}.group-name-input:focus{border-color:var(--orange);background:#fffdf7;box-shadow:0 0 0 2px #ed7b321f}.group-editor-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.swap-button,.apply-group-button{border:1px solid #8da098;min-height:36px;font-size:10px;font-weight:700}.swap-button{color:var(--ink);background:0 0}.swap-button:hover:not(:disabled){border-color:var(--orange);color:#a94712;background:#fff6ec}.swap-button:disabled{cursor:not-allowed;opacity:.42}.apply-group-button{background:var(--orange);border-color:var(--orange);color:#203532}.apply-group-button:hover{background:#f08d4d}.primary-button,.export-button,.secondary-button,.mini-button{border:0;font-weight:700;transition:all .2s}.primary-button{background:var(--ink);color:#fff;width:100%;margin-top:8px;padding:14px 18px}.primary-button:hover{background:#285b57}.method-card{border-top:1px solid #aeb9b1;margin-top:50px;padding-top:25px}.method-card p{margin:0 0 22px}.method-card b{color:var(--orange);margin-bottom:5px;font:500 12px/1.3 DM Mono,monospace;display:block}.method-card span{color:#4f6560;font-size:12px;line-height:1.6}.results-stage{min-width:0;padding:40px clamp(20px,4vw,54px) 56px}.results-heading{justify-content:space-between;align-items:center;gap:30px;display:flex}.results-heading h2{margin:6px 0}.results-heading p{font:400 11px/1.6 DM Mono,monospace}.export-button{background:var(--orange);color:#1d302e;padding:13px 18px;box-shadow:5px 5px #173f3d}.export-button:hover{transform:translate(-2px,-2px);box-shadow:7px 7px #173f3d}.export-button span{margin-left:12px}.export-actions,.mini-actions{align-items:center;gap:10px;display:flex}.secondary-button{color:var(--ink);background:#e2e7de;border:1px solid #94a49d;padding:13px 18px}.secondary-button:hover{border-color:var(--ink);background:#d2dbd1}.mini-button{color:var(--ink);background:0 0;border:1px solid #9cac9f;padding:8px 11px;font-size:11px}.mini-button:hover{background:var(--ink);color:#fff}.metric-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin:34px 0 24px;display:grid}.metric{background:var(--paper);padding:20px}.metric strong{color:var(--ink);font:400 34px/1 DM Mono,monospace;display:block}.metric span{color:var(--muted);font-size:11px}.chart-card,.table-card,.detail-card{border-top:3px solid var(--ink);margin-top:24px;padding-top:17px}.card-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.card-heading span{color:var(--orange)}.card-heading h3{margin:4px 0 0;font-size:18px}.legend{flex-wrap:wrap;gap:14px;font-size:11px;display:flex}.legend span{color:var(--ink);letter-spacing:0;text-transform:none;align-items:center;gap:6px;display:inline-flex}.legend i{background:var(--swatch);border-radius:50%;width:9px;height:9px}.matrix-card{margin-top:24px}#prism-table thead tr:first-child th{text-align:center;background:#284b49;border-right:1px solid #6d8580}#prism-table thead tr:nth-child(2) th{color:var(--ink);text-align:center;background:#e2e7de;padding-block:7px}#prism-table td{font-family:DM Mono,monospace;font-size:11px}#prism-table td:first-child{background:var(--paper);font-family:Noto Sans SC,sans-serif;position:sticky;left:0}.chart-customizer{background:#f3f5ed;border:1px solid #cfd8d1;margin-top:17px;padding:15px 16px}.palette-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.palette-heading>div:first-child{gap:3px;display:grid}.palette-heading b{font-size:12px}.palette-heading span{color:var(--muted);font-size:10px}.palette-presets{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.palette-chip{min-height:29px;color:var(--ink);background:#fffdf7;border:1px solid #a8b5ad;align-items:center;gap:7px;padding:5px 8px;font-size:10px;display:inline-flex}.palette-chip:hover{border-color:var(--orange)}.palette-chip>span{gap:1px;display:inline-flex}.palette-chip i{background:var(--chip);width:8px;height:15px;display:block}.color-control-list{gap:8px;margin-top:13px;display:grid}.color-control-row{grid-template-columns:minmax(80px,.65fr) auto auto auto 86px;align-items:center;gap:9px;display:grid}.color-control-row>b{text-overflow:ellipsis;white-space:nowrap;font:500 11px/1.2 Consolas,monospace;overflow:hidden}.basic-swatches{gap:4px;display:flex}.color-swatch{background:var(--swatch);border:1px solid #82938b;border-radius:50%;width:21px;height:21px;padding:0;box-shadow:inset 0 0 0 2px #ffffff8c}.color-swatch:hover{border-color:#1d302e;transform:scale(1.14)}.color-picker-wrap{cursor:pointer;background:#fff;border:1px solid #9dac9f;flex-direction:row;align-items:center;height:29px;padding:4px 7px;grid-template-columns:none!important;gap:5px!important;margin:0!important;font-size:10px!important;display:inline-flex!important}.native-color-input{cursor:pointer;background:0 0;border:0;width:22px;height:19px;padding:0}.native-color-input::-webkit-color-swatch-wrapper{padding:0}.native-color-input::-webkit-color-swatch{border:1px solid #5d6f68}.eyedropper-button{min-height:29px;color:var(--ink);background:0 0;border:1px solid #9dac9f;padding:5px 8px;font-size:10px}.eyedropper-button:hover{color:#fff;background:var(--ink)}.hex-color-input{width:86px;min-width:0;color:var(--ink);text-transform:lowercase;background:#fff;border:1px solid #9dac9f;padding:6px 7px;font:500 10px/1.2 Consolas,monospace}.prism-plot{background:#fff;border:1px solid #d8ddd9;margin-top:18px;overflow:hidden}.prism-plot svg{width:100%;min-width:0;max-width:100%;height:auto;display:block}.chart-dialog{width:min(96vw,1760px);max-width:none;max-height:96vh;color:var(--ink);background:#fffdf7;border:1px solid #6c7e76;padding:0;box-shadow:0 28px 100px #0a232059}.chart-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a211fb8}.chart-dialog-bar{color:#fff;background:var(--ink);justify-content:space-between;align-items:center;min-height:64px;padding:14px 18px 14px 24px;display:flex}.chart-dialog-bar>div{gap:3px;display:grid}.chart-dialog-bar span{color:var(--acid);letter-spacing:.14em;font:500 9px/1 Consolas,monospace}.chart-dialog-bar b{font-size:15px}.dialog-close{color:#fff;background:0 0;border:1px solid #ffffff73;width:36px;height:36px;font-size:25px;line-height:1}.chart-dialog-canvas{background:#fff;max-height:calc(96vh - 64px);overflow:auto}.chart-dialog-canvas svg{width:100%;min-width:900px;height:auto;display:block}.chart{background:repeating-linear-gradient(0deg,#0000 0 69px,#e7ebe5 70px);border-bottom:1px solid #9aa9a2;align-items:end;gap:clamp(12px,3vw,44px);height:310px;margin-top:20px;padding:35px 22px 0;display:flex;overflow-x:auto}.bar-group{text-align:center;flex:1;grid-template-rows:1fr 30px;min-width:66px;height:100%;display:grid}.bars{justify-content:center;align-items:end;gap:6px;display:flex}.bar{width:min(30px,42%);height:var(--height);background:var(--bar);transition:height .6s cubic-bezier(.2,.75,.25,1);position:relative}.bar span{font:500 10px/1 DM Mono,monospace;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.bar-group b{align-self:end;font:500 11px/1 DM Mono,monospace}.table-wrap{margin-top:16px;overflow:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:12px}th{text-align:left;background:var(--ink);color:#fff;padding:11px 12px;font-weight:500}td{border-bottom:1px solid #dde3de;padding:10px 12px}tbody tr:hover{background:#f1f5ed}.accent-cell{color:#087067;font:500 12px/1 DM Mono,monospace}.detail-card summary{cursor:pointer;justify-content:space-between;font-weight:700;list-style:none;display:flex}.detail-card summary::-webkit-details-marker{display:none}.detail-card[open] summary span{transform:rotate(45deg)}.detail-card summary span{font:300 25px/1 DM Mono,monospace;transition:all .2s}.toast{background:var(--ink);color:#fff;opacity:0;z-index:20;padding:13px 18px;transition:all .25s;position:fixed;bottom:24px;right:24px;transform:translateY(90px)}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#9d2f35}@media (width<=900px){.masthead{grid-template-columns:90px 1fr;padding:44px 24px}.brand-mark{width:88px;height:88px;font-size:38px}.intake-panel{grid-template-columns:50px 1fr;padding:30px 22px 45px}.dropzone{grid-column:2}.demo-format-panel{grid-column:2;grid-template-columns:1fr}.workspace{grid-template-columns:1fr}.control-rail{border-right:0;grid-template-columns:50px 1fr;gap:12px;display:grid}.method-card{grid-column:2}.metric-grid{grid-template-columns:repeat(2,1fr)}.palette-heading{flex-direction:column;align-items:flex-start}.palette-presets{justify-content:flex-start}.color-control-row{grid-template-columns:minmax(90px,1fr) auto auto}.basic-swatches{grid-area:2/1/auto/-1}.hex-color-input{width:82px}}@media (width<=560px){.masthead{grid-template-columns:1fr}.brand-mark{display:none}.intake-panel{grid-template-columns:1fr}.intake-panel .section-index,.dropzone,.demo-format-panel{grid-column:1}.text-button{right:22px}.results-heading{flex-direction:column;align-items:flex-start}.export-actions{flex-wrap:wrap;width:100%}.metric-grid{grid-template-columns:1fr 1fr}.results-stage{padding-inline:16px}.card-heading{flex-direction:column;align-items:flex-start}.mini-actions{flex-wrap:wrap;width:100%}.chart-customizer{padding:13px 11px}.color-control-row{grid-template-columns:1fr auto}.basic-swatches{grid-column:1/-1}.hex-color-input{grid-column:1;width:100%}.eyedropper-button{grid-area:3/2}}
