diff --git a/public/index.html b/public/index.html index 9ae20c8..5d33573 100644 --- a/public/index.html +++ b/public/index.html @@ -4,9 +4,9 @@ - + Ranker — ranked feedback maps for messy decisions - +
@@ -123,6 +123,6 @@
- + diff --git a/public/styles.css b/public/styles.css index 39df459..cf297cb 100644 --- a/public/styles.css +++ b/public/styles.css @@ -1,22 +1,28 @@ :root{ - color-scheme:dark; - --bg:#0b1020; - --bg2:#11182b; - --card:#f7f3ea; - --paper:#fffaf0; - --ink:#141824; - --muted:#6d7280; - --line:rgba(20,24,36,.14); - --blue:#5c8dff; - --violet:#9a6cff; - --green:#46c981; - --amber:#e8a13a; - --red:#e86d63; - --shadow:0 28px 80px rgba(0,0,0,.28); - --radius:28px; + color-scheme:light; + --paper:#f3eee4; + --panel:#fffaf1; + --ink:#15130f; + --ink2:#2d2a24; + --muted:#70695c; + --hair:#d6cdbc; + --blue:#245cff; + --blue2:#1237aa; + --red:#ff4b35; + --green:#0c8f52; + --amber:#b56a00; + --violet:#7047d8; + --shadow:10px 10px 0 #15130f; + --soft:0 24px 80px rgba(21,19,15,.14); font-family:Inter,"SF Pro Display","Segoe UI",system-ui,sans-serif; } -*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;min-height:100vh;background: - radial-gradient(circle at 12% -10%,rgba(92,141,255,.42),transparent 34rem), - radial-gradient(circle at 88% 0%,rgba(154,108,255,.30),transparent 32rem), - linear-gradient(135deg,var(--bg),#070a12 70%);color:#f9fafb} button,input,textarea{font:inherit} button{cursor:pointer} a{color:inherit;text-decoration:none}.page-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:18px 0 72px}.topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:36px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:950;letter-spacing:-.04em}.brand span{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--violet));box-shadow:0 14px 36px rgba(92,141,255,.28)}.nav-links{display:flex;gap:8px;flex-wrap:wrap}.nav-links a{padding:9px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#dce5ff;background:rgba(255,255,255,.04)}.hero{padding:12px 0 28px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);gap:22px;align-items:stretch}.hero-copy,.artifact-card,.decision-tool,.results,.proof-section,.why-section{border:1px solid rgba(255,255,255,.13);box-shadow:var(--shadow)}.hero-copy{padding:clamp(28px,5vw,58px);border-radius:36px;background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.04));backdrop-filter:blur(18px)}.eyebrow{margin:0 0 12px;color:#a9bbff;text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:950}.hero h1{max-width:780px;margin:0;color:#fff;font-size:clamp(44px,7vw,86px);line-height:.9;letter-spacing:-.08em}.lede{max-width:740px;margin:20px 0 0;color:#dce3f4;font-size:clamp(18px,2vw,23px);line-height:1.38}.hero-actions,.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 18px;border-radius:999px;border:1px solid transparent;font-weight:950}.button.primary{background:linear-gradient(135deg,var(--blue),var(--violet));color:#fff;box-shadow:0 16px 40px rgba(92,141,255,.25)}.button.ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}.button:disabled{opacity:.65;cursor:wait}.promise-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.promise-row span{padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#e7edff;font-size:13px;font-weight:800}.artifact-card{display:flex;flex-direction:column;gap:16px;border-radius:36px;padding:22px;background:linear-gradient(180deg,var(--paper),#eee7d8);color:var(--ink)}.artifact-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.artifact-head span,.brief-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:950}.artifact-head b{padding:7px 10px;border-radius:999px;background:#e8eefc;color:#244280;font-size:12px}.mini-ranking{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:item}.mini-ranking li{counter-increment:item;display:grid;grid-template-columns:34px 1fr;gap:10px;padding:14px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.62)}.mini-ranking li::before{content:counter(item);display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#141824;color:#fff;font-weight:950}.mini-ranking strong{display:block}.mini-ranking small{display:block;margin-top:4px;color:var(--muted);line-height:1.35}.mini-brief{margin-top:auto;padding:16px;border-radius:20px;background:#141824;color:#fff}.mini-brief p{margin:6px 0 0;color:#d8dfeb;line-height:1.45}.decision-tool{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:18px;margin-top:22px;padding:22px;border-radius:36px;background:rgba(255,255,255,.08);backdrop-filter:blur(18px)}.tool-intro{padding:10px}.tool-intro h2,.proof-section h2,.why-section h2,.results-head h2{margin:0;color:#fff;font-size:clamp(32px,4vw,54px);line-height:.98;letter-spacing:-.06em}.tool-intro p:not(.eyebrow),.proof-section p,.why-section p,.results-head p{color:#dce3f4;line-height:1.55}.rank-form{display:grid;gap:14px;padding:16px;border-radius:26px;background:var(--paper);color:var(--ink)}label span,.mode-picker legend{display:flex;justify-content:space-between;margin:0 0 7px;color:#303644;font-weight:950;font-size:13px}label b,label em{font-size:11px;color:var(--muted);font-style:normal;text-transform:uppercase;letter-spacing:.07em}textarea,input{width:100%;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);padding:13px 14px;outline:none;resize:vertical}textarea:focus,input:focus{border-color:rgba(92,141,255,.72);box-shadow:0 0 0 4px rgba(92,141,255,.14)}.mode-picker{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.mode-picker label{position:relative;margin:0}.mode-picker input{position:absolute;inset:0;opacity:0}.mode-picker span{display:grid;place-items:center;min-height:58px;margin:0;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:center;font-size:12px;line-height:1.2}.mode-picker input:checked+span{background:#141824;color:#fff;border-color:#141824}.rank-form .button.ghost{color:var(--ink);border-color:var(--line);background:#fff}.results{margin-top:22px;padding:22px;border-radius:36px;background:rgba(255,255,255,.08);backdrop-filter:blur(18px)}.results-head{margin-bottom:16px}.ranked-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.rank-card{padding:16px;border-radius:24px;background:var(--paper);color:var(--ink);border:1px solid var(--line)}.rank-topline{display:flex;align-items:center;gap:8px}.rank-topline strong{margin-left:auto;color:#fff;background:#141824;border-radius:999px;padding:6px 9px}.rank-number{font-weight:950}.lane-pill{padding:6px 9px;border-radius:999px;font-size:12px;font-weight:950}.lane-do .lane-pill{background:rgba(70,201,129,.18);color:#116b3b}.lane-test .lane-pill{background:rgba(92,141,255,.18);color:#244280}.lane-defer .lane-pill{background:rgba(232,161,58,.22);color:#7a4b08}.lane-park .lane-pill{background:rgba(232,109,99,.18);color:#8a2e27}.rank-card h3{margin:14px 0 8px;font-size:22px;line-height:1.05;letter-spacing:-.04em}.rank-card p{color:#3f4654;line-height:1.45}.item-description{color:#626b7a!important}.metrics{display:grid;gap:8px;margin-top:14px}.metric{display:grid;grid-template-columns:78px 1fr;gap:8px;align-items:center}.metric span{font-size:11px;color:var(--muted);font-weight:900}.metric i{height:7px;border-radius:999px;background:#e6e1d7;overflow:hidden}.metric b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--violet))}.brief-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:12px;margin-top:14px}.brief-card{padding:16px;border-radius:22px;background:#141824;border:1px solid rgba(255,255,255,.12)}.brief-card p,.brief-card li{color:#dce3f4;line-height:1.5}.brief-card ol{padding-left:20px;margin:10px 0 0}.next-card{background:linear-gradient(135deg,#162548,#271c4d)}.caution{margin:14px 0 0;color:#aab5cb}.proof-section,.why-section{margin-top:22px;border-radius:36px;padding:28px;background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.04))}.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.proof-grid article{padding:17px;border-radius:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.11)}.proof-grid strong{display:block;color:#fff}.why-section{background:linear-gradient(135deg,var(--paper),#e9e2d5);color:var(--ink)}.why-section h2{color:var(--ink)}.why-section p{max-width:860px;color:#3f4654;font-size:18px}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:50;padding:12px 14px;border-radius:999px;background:#fff;color:#141824;box-shadow:var(--shadow);font-weight:850}.toast[hidden]{display:none!important}@media(max-width:980px){.hero-grid,.decision-tool{grid-template-columns:1fr}.ranked-list{grid-template-columns:1fr 1fr}.brief-grid,.proof-grid{grid-template-columns:1fr 1fr}.mode-picker{grid-template-columns:1fr 1fr}}@media(max-width:640px){.page-shell{width:min(100% - 20px,460px);padding-top:10px}.topline{align-items:flex-start}.nav-links{justify-content:flex-end}.nav-links a{font-size:13px}.hero-copy,.artifact-card,.decision-tool,.results,.proof-section,.why-section{border-radius:26px}.hero h1{font-size:44px}.lede{font-size:17px}.hero-actions,.form-actions{display:grid}.button{width:100%}.decision-tool,.results{padding:14px}.rank-form{padding:12px}.mode-picker,.ranked-list,.brief-grid,.proof-grid{grid-template-columns:1fr}.artifact-head{align-items:flex-start;flex-direction:column}.tool-intro h2,.proof-section h2,.why-section h2,.results-head h2{font-size:34px}.toast{width:calc(100% - 32px);text-align:center;border-radius:18px}} \ No newline at end of file +*{box-sizing:border-box} +html{scroll-behavior:smooth} +body{margin:0;min-height:100vh;background: + linear-gradient(rgba(21,19,15,.045) 1px,transparent 1px), + linear-gradient(90deg,rgba(21,19,15,.045) 1px,transparent 1px), + radial-gradient(circle at 82px 72px,rgba(36,92,255,.14),transparent 260px), + radial-gradient(circle at 92% 10%,rgba(255,75,53,.10),transparent 360px), + var(--paper);background-size:28px 28px,28px 28px,auto,auto,auto;color:var(--ink)} +body::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(21,19,15,.06),transparent 18%,transparent 82%,rgba(21,19,15,.05));mix-blend-mode:multiply} +button,input,textarea{font:inherit} button{cursor:pointer} a{color:inherit;text-decoration:none}.page-shell{width:min(1220px,calc(100% - 34px));margin:0 auto;padding:20px 0 84px}.topline{position:sticky;top:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:34px;padding:10px 12px;border:2px solid var(--ink);border-radius:999px;background:rgba(255,250,241,.86);backdrop-filter:blur(16px);box-shadow:0 8px 0 rgba(21,19,15,.16)}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:1000;letter-spacing:-.05em}.brand span{width:36px;height:36px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--blue);color:#fff;box-shadow:3px 3px 0 var(--ink)}.nav-links{display:flex;gap:6px;flex-wrap:wrap}.nav-links a{padding:9px 12px;border:1.5px solid var(--hair);border-radius:999px;color:var(--ink2);background:#fff8eb;font-size:13px;font-weight:850}.nav-links a:hover{border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.hero{padding:4px 0 26px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:22px;align-items:stretch}.hero-copy,.artifact-card,.decision-tool,.results,.proof-section,.why-section{border:2px solid var(--ink);background:var(--panel)}.hero-copy{position:relative;overflow:hidden;padding:clamp(30px,5vw,64px);box-shadow:var(--shadow)}.hero-copy::before{content:"FIRST PASS / NOT AN ORACLE";position:absolute;top:18px;right:-58px;transform:rotate(12deg);padding:8px 70px;border:2px solid var(--red);color:var(--red);background:rgba(255,250,241,.82);font-weight:1000;font-size:12px;letter-spacing:.14em}.eyebrow{margin:0 0 14px;color:var(--blue2);text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:1000}.hero h1{max-width:820px;margin:0;color:var(--ink);font-size:clamp(46px,7.4vw,98px);line-height:.84;letter-spacing:-.09em;text-wrap:balance}.lede{max-width:760px;margin:22px 0 0;color:var(--ink2);font-size:clamp(18px,2vw,24px);line-height:1.35}.hero-actions,.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 20px;border-radius:0;border:2px solid var(--ink);font-weight:1000;letter-spacing:-.02em;transition:transform .15s ease,box-shadow .15s ease}.button.primary{background:var(--blue);color:#fff;box-shadow:6px 6px 0 var(--ink)}.button.ghost{background:#fff6e7;color:var(--ink);box-shadow:4px 4px 0 rgba(21,19,15,.28)}.button:hover{transform:translate(-2px,-2px);box-shadow:9px 9px 0 var(--ink)}.button:disabled{opacity:.65;cursor:wait;transform:none}.promise-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:24px}.promise-row span{padding:10px 10px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);font-size:12px;font-weight:950;text-align:center;text-transform:uppercase;letter-spacing:.04em}.artifact-card{position:relative;display:flex;flex-direction:column;gap:16px;padding:22px;box-shadow:var(--soft)}.artifact-card::after{content:"RANKED FEEDBACK MAP";position:absolute;left:22px;right:22px;bottom:18px;color:rgba(21,19,15,.055);font-size:42px;line-height:.78;font-weight:1000;letter-spacing:-.08em;pointer-events:none}.artifact-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding-bottom:14px;border-bottom:2px solid var(--ink)}.artifact-head span,.brief-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:1000}.artifact-head b{padding:7px 10px;border:2px solid var(--ink);background:#e8edff;color:var(--blue2);font-size:12px;box-shadow:3px 3px 0 var(--ink)}.mini-ranking{position:relative;z-index:1;display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:item}.mini-ranking li{counter-increment:item;display:grid;grid-template-columns:42px 1fr;gap:11px;padding:14px;border:2px solid var(--ink);background:#fff}.mini-ranking li::before{content:counter(item);display:grid;place-items:center;width:36px;height:36px;background:var(--ink);color:#fff;font-weight:1000}.mini-ranking li:first-child::before{background:var(--red)}.mini-ranking strong{display:block;font-size:17px}.mini-ranking small{display:block;margin-top:4px;color:var(--muted);line-height:1.35}.mini-brief{position:relative;z-index:1;margin-top:auto;padding:16px;border:2px solid var(--ink);background:var(--ink);color:#fff}.mini-brief p{margin:6px 0 0;color:#ede6d8;line-height:1.45}.decision-tool{display:grid;grid-template-columns:minmax(260px,.70fr) minmax(0,1.30fr);gap:18px;margin-top:24px;padding:22px;box-shadow:var(--shadow)}.tool-intro{padding:8px}.tool-intro h2,.proof-section h2,.why-section h2,.results-head h2{margin:0;color:var(--ink);font-size:clamp(34px,4.3vw,58px);line-height:.92;letter-spacing:-.07em;text-wrap:balance}.tool-intro p:not(.eyebrow),.proof-section p,.why-section p,.results-head p{color:var(--ink2);line-height:1.55}.rank-form{display:grid;gap:14px;padding:16px;border:2px solid var(--ink);background:#fff3df;box-shadow:inset 0 0 0 1px rgba(21,19,15,.05)}label span,.mode-picker legend{display:flex;justify-content:space-between;margin:0 0 7px;color:var(--ink);font-weight:1000;font-size:13px}label b,label em{font-size:11px;color:var(--muted);font-style:normal;text-transform:uppercase;letter-spacing:.08em}textarea,input{width:100%;border:2px solid var(--ink);border-radius:0;background:#fffdf8;color:var(--ink);padding:13px 14px;outline:none;resize:vertical;box-shadow:3px 3px 0 rgba(21,19,15,.16)}textarea:focus,input:focus{border-color:var(--blue);box-shadow:5px 5px 0 rgba(36,92,255,.25)}.mode-picker{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.mode-picker label{position:relative;margin:0}.mode-picker input{position:absolute;inset:0;opacity:0}.mode-picker span{display:grid;place-items:center;min-height:62px;margin:0;padding:10px;border:2px solid var(--ink);background:#fffdf8;text-align:center;font-size:12px;line-height:1.2;box-shadow:3px 3px 0 rgba(21,19,15,.16)}.mode-picker input:checked+span{background:var(--ink);color:#fff;box-shadow:5px 5px 0 var(--blue)}.rank-form .button.ghost{background:#fffdf8}.results{margin-top:24px;padding:22px;box-shadow:var(--shadow)}.results-head{display:grid;grid-template-columns:minmax(0,.82fr) minmax(260px,.42fr);gap:16px;align-items:end;margin-bottom:18px;padding-bottom:18px;border-bottom:2px solid var(--ink)}.results-head::after{content:"DECISION BRIEF";display:grid;place-items:center;min-height:110px;border:2px solid var(--red);color:var(--red);font-size:34px;font-weight:1000;letter-spacing:-.06em;transform:rotate(-2deg);background:rgba(255,75,53,.04)}.ranked-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}.rank-card{position:relative;padding:16px;border:2px solid var(--ink);background:#fffdf8;color:var(--ink);box-shadow:5px 5px 0 rgba(21,19,15,.20)}.rank-card::before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:var(--blue)}.lane-do::before{background:var(--red)}.lane-test::before{background:var(--blue)}.lane-defer::before{background:var(--amber)}.lane-park::before{background:var(--muted)}.rank-topline{display:flex;align-items:center;gap:8px;padding-left:6px}.rank-topline strong{margin-left:auto;color:#fff;background:var(--ink);padding:6px 9px;font-size:13px}.rank-number{font-weight:1000;font-size:18px}.lane-pill{padding:6px 9px;border:1.5px solid var(--ink);font-size:11px;font-weight:1000;text-transform:uppercase;letter-spacing:.04em}.lane-do .lane-pill{background:#ffe1dc;color:#8c1709}.lane-test .lane-pill{background:#e1e9ff;color:var(--blue2)}.lane-defer .lane-pill{background:#ffecc7;color:#714200}.lane-park .lane-pill{background:#e5ded2;color:#51483b}.rank-card h3{margin:14px 0 8px;padding-left:6px;font-size:24px;line-height:1.02;letter-spacing:-.05em}.rank-card p{padding-left:6px;color:var(--ink2);line-height:1.43}.item-description{color:var(--muted)!important}.metrics{display:grid;gap:8px;margin-top:14px;padding-left:6px}.metric{display:grid;grid-template-columns:78px 1fr;gap:8px;align-items:center}.metric span{font-size:11px;color:var(--muted);font-weight:1000;text-transform:uppercase}.metric i{height:8px;border:1.5px solid var(--ink);background:#f0e7d7;overflow:hidden}.metric b{display:block;height:100%;background:var(--blue)}.brief-grid{display:grid;grid-template-columns:1.18fr repeat(3,1fr);gap:12px;margin-top:14px}.brief-card{padding:16px;border:2px solid var(--ink);background:var(--ink);color:#fff;box-shadow:5px 5px 0 rgba(21,19,15,.20)}.brief-card p,.brief-card li{color:#ede6d8;line-height:1.5}.brief-card ol{padding-left:20px;margin:10px 0 0}.next-card{background:var(--blue)}.next-card span{color:#dfe6ff}.caution{margin:14px 0 0;color:var(--muted);font-weight:800}.proof-section,.why-section{margin-top:24px;padding:28px;box-shadow:var(--soft)}.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.proof-grid article{padding:17px;border:2px solid var(--ink);background:#fffdf8;box-shadow:4px 4px 0 rgba(21,19,15,.16)}.proof-grid strong{display:block;color:var(--ink);font-size:18px}.proof-grid p{color:var(--ink2)}.why-section{background:var(--ink);color:#fff}.why-section .eyebrow{color:#9db3ff}.why-section h2{color:#fff}.why-section p{max-width:900px;color:#ede6d8;font-size:18px}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:50;padding:12px 16px;border:2px solid var(--ink);background:#fff;color:var(--ink);box-shadow:6px 6px 0 var(--ink);font-weight:950}.toast[hidden]{display:none!important}@media(max-width:980px){.hero-grid,.decision-tool{grid-template-columns:1fr}.ranked-list{grid-template-columns:1fr 1fr}.brief-grid,.proof-grid{grid-template-columns:1fr 1fr}.mode-picker{grid-template-columns:1fr 1fr}.results-head{grid-template-columns:1fr}.promise-row{grid-template-columns:1fr 1fr}}@media(max-width:640px){body{background-size:22px 22px,22px 22px,auto,auto,auto}.page-shell{width:min(100% - 22px,470px);padding-top:10px}.topline{position:static;align-items:flex-start;border-radius:0;box-shadow:5px 5px 0 rgba(21,19,15,.22)}.nav-links{justify-content:flex-end}.nav-links a{font-size:12px}.hero-copy,.artifact-card,.decision-tool,.results,.proof-section,.why-section{box-shadow:6px 6px 0 var(--ink)}.hero-copy{padding:26px 18px}.hero-copy::before{display:none}.hero h1{font-size:48px}.lede{font-size:17px}.hero-actions,.form-actions{display:grid}.button{width:100%}.promise-row,.mode-picker,.ranked-list,.brief-grid,.proof-grid{grid-template-columns:1fr}.decision-tool,.results{padding:14px}.rank-form{padding:12px}.artifact-head{align-items:flex-start;flex-direction:column}.tool-intro h2,.proof-section h2,.why-section h2,.results-head h2{font-size:38px}.results-head::after{min-height:76px;font-size:25px}.toast{width:calc(100% - 32px);text-align:center}} \ No newline at end of file diff --git a/server.js b/server.js index 7ffe808..c1959bd 100644 --- a/server.js +++ b/server.js @@ -513,11 +513,11 @@ function reasonFor(option) { const m = option.metrics; if (option.lane?.id === 'do' && /snapshot|concept map|feature set|build order|rank/i.test(`${option.title} ${option.description}`)) return 'it strengthens the Scattermind → Ranker bridge instead of inventing a generic workspace'; if (option.factors?.evidenceNeeded && m.confidence >= 6.4) return 'it names the evidence needed, so the next move can be tested instead of guessed'; - if (m.feasibility >= 7.2 && m.value >= 6.2) return 'high enough value with low enough delivery drag to create fast signal'; - if (m.revenue >= 6.4) return 'clearer buyer or money signal than the rest of the list'; - if (m.risk >= 6.5) return 'interesting, but it carries assumption risk that should be tested before build'; - if (m.novelty >= 6.7) return 'more differentiated than the safe options, but still needs proof'; - return 'balanced tradeoff across value, effort, confidence, and timing'; + if (m.feasibility >= 7.2 && m.value >= 6.2) return 'it has high enough value with low enough delivery drag to create fast signal'; + if (m.revenue >= 6.4) return 'it has a clearer buyer or money signal than the rest of the list'; + if (m.risk >= 6.5) return 'it is interesting, but carries assumption risk that should be tested before build'; + if (m.novelty >= 6.7) return 'it is more differentiated than the safe options, but still needs proof'; + return 'it has the best balanced tradeoff across value, effort, confidence, and timing'; } function concernFor(option) { @@ -536,7 +536,7 @@ function createDecisionBrief({ idea, context, mode, ranked, provenance }) { const risky = ranked.slice().sort((a, b) => b.metrics.risk - a.metrics.risk)[0]; const deferred = ranked.filter(item => ['defer', 'park'].includes(item.lane.id)).slice(0, 3); const sourceLabel = [provenance?.snapshotTitle, provenance?.artifactId].filter(Boolean).join(' · '); - const theme = top ? `The strongest signal is “${top.title}” because it has ${reasonFor(top)}.` : 'The list needs at least two options before ranking becomes useful.'; + const theme = top ? `The strongest signal is “${top.title}” because ${reasonFor(top)}.` : 'The list needs at least two options before ranking becomes useful.'; return { headline: top ? `Start with ${top.title}` : 'Add options to get a ranked feedback map', summary: `${theme}${second ? ` “${second.title}” is the nearest follow-up, not a parallel first step.` : ''}${sourceLabel ? ` Source: ${sourceLabel}.` : ''}`,