:root{
  --forest:#072d09; --forest-deep:#04513e; --cream:#f9ffea; --bg-alt:#f1f9dd;
  --sage:#d2e1c3; --mint:#14cda1; --rose:#d28aa0; --sky:#99c9cf;
  --peach:#dfa37a; --navy:#043551; --ink:#2a2a2a; --ink-soft:#4a4a4a;
  --line:rgba(7,45,9,.14); --line-soft:rgba(7,45,9,.08);
  --font-display:'Albert Sans',ui-sans-serif,system-ui,sans-serif;
  --font-body:'Work Sans',ui-sans-serif,system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;}
html{color:var(--forest);background:var(--cream);font-family:var(--font-body);
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;}
body{margin:0;}
::selection{background:var(--mint);color:var(--forest);}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;color:var(--forest);
  letter-spacing:-.02em;line-height:1.1;margin:0 0 .5em;text-wrap:balance;}
.display-lg{font-size:clamp(2.75rem,5vw,4rem);line-height:1.05;}
.display-sm{font-size:1.875rem;}
h2{font-size:1.75rem;line-height:1.2;}
h3{font-size:1.375rem;font-weight:500;}
h4{font-size:1.125rem;font-weight:500;}
p{line-height:1.65;color:var(--ink);margin:0 0 1em;text-wrap:pretty;}
.lead{font-size:1.125rem;color:var(--forest);}
a{color:var(--forest);text-decoration:none;border-bottom:1px solid currentColor;
  transition:opacity .14s;}
a:hover{opacity:.65;}
.caption{font-size:.8125rem;color:var(--ink-soft);}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--forest);}
.wrap{max-width:1180px;margin:0 auto;padding:40px 48px 110px;}
.accent-italic{font-style:italic;}

/* masthead */
header.masthead{display:flex;justify-content:space-between;align-items:flex-end;
  gap:24px;padding-bottom:22px;border-bottom:1px solid var(--line);}
nav.tabs{display:flex;gap:6px;flex-shrink:0;}
nav.tabs a{padding:8px 18px;border-radius:999px;font-size:14px;font-weight:500;
  border:1px solid transparent;background:transparent;color:var(--forest);}
nav.tabs a.active{background:var(--forest);color:var(--cream);border-color:var(--forest);}
.sub{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;
  margin-top:18px;flex-wrap:wrap;}
.sub p{margin:0;max-width:58ch;font-size:16px;color:var(--ink);}

/* toolbar */
.toolbar{display:flex;justify-content:space-between;align-items:center;
  gap:20px 32px;flex-wrap:wrap;margin:34px 0 4px;padding-bottom:14px;}
.toolbar .grp{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.pill{padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;
  cursor:pointer;border:1px solid var(--line);background:transparent;
  color:var(--forest);text-transform:capitalize;transition:all .14s;}
.pill.active{background:var(--forest);color:var(--cream);border-color:var(--forest);}
.pill .dot{width:8px;height:8px;border-radius:999px;display:inline-block;
  margin-right:7px;vertical-align:middle;}
select.floor,input.floor{font-family:var(--font-body);}
select.floor{appearance:none;-webkit-appearance:none;padding:7px 30px 7px 13px;
  border-radius:999px;border:1px solid var(--line);background:transparent;
  color:var(--forest);font-size:13px;font-weight:500;cursor:pointer;}
input[type=range]{accent-color:var(--forest);cursor:pointer;width:120px;}
.floor-val{font-family:var(--font-display);font-size:16px;min-width:26px;}

/* idea rows */
article.idea{display:grid;grid-template-columns:64px 1fr 224px;gap:30px;
  align-items:start;padding:34px 18px;border-top:1px solid var(--line);
  border-radius:14px;transition:background .14s;}
article.idea:hover{background:var(--bg-alt);}
.rank{font-family:var(--font-display);font-size:34px;color:var(--forest);
  opacity:.3;line-height:1;padding-top:4px;}
.idea h2{margin:0 0 12px;}
.idea .problem{margin:0 0 18px;max-width:60ch;color:var(--forest);font-size:1.125rem;line-height:1.6;}
.aud{display:flex;gap:9px;align-items:baseline;flex-wrap:wrap;}
.aud .v{font-size:14.5px;color:var(--ink);}
.scorebox{display:flex;flex-direction:column;align-items:center;gap:12px;
  border-left:1px solid var(--line);padding-left:8px;}
.scores{display:flex;gap:15px;text-align:center;}
.scores .lab{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--ink);opacity:.7;margin-bottom:1px;}
.scores .num{font-family:var(--font-display);font-size:18px;color:var(--forest);line-height:1;}
.comp{width:100%;border-top:1px solid var(--line);padding-top:11px;
  display:flex;align-items:baseline;justify-content:center;gap:6px;}
.comp .big{font-family:var(--font-display);font-size:22px;color:var(--forest);line-height:1;}
.sig-link{font-size:13px;color:var(--forest-deep);font-weight:500;}

/* detail */
.detail-grid{margin-top:24px;display:grid;grid-template-columns:1fr 312px;
  gap:52px;align-items:start;}
.whynow{border-left:3px solid var(--mint);padding:2px 0 2px 22px;margin:0 0 36px;}
.fields{display:flex;flex-direction:column;gap:30px;max-width:64ch;}
.fields p{margin:0;font-size:17px;color:var(--forest);}
.rail{position:sticky;top:24px;border:1px solid var(--line);border-radius:20px;
  padding:26px 22px;background:color-mix(in srgb,var(--sage) 42%,var(--cream));}
.rail .scores .num{font-size:26px;}
.bigcomp{display:flex;align-items:baseline;justify-content:center;gap:6px;}
.bigcomp .n{font-family:var(--font-display);font-size:40px;color:var(--forest);line-height:1;}
.evidence{margin-top:60px;border-top:1px solid var(--line);padding-top:34px;}
.sigrow{display:grid;grid-template-columns:150px 1fr auto;gap:26px;
  align-items:start;padding:24px 16px;border-top:1px solid var(--line);}
.kindtag{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;
  text-transform:uppercase;letter-spacing:.09em;font-weight:600;color:var(--forest);}
.kindtag .dot{width:8px;height:8px;border-radius:999px;display:inline-block;}
.src{margin-bottom:5px;opacity:.8;text-transform:uppercase;letter-spacing:.06em;
  font-size:.8125rem;color:var(--ink-soft);}

/* curation */
.curate{display:flex;gap:8px;margin:18px 0 0;}
.curate button{padding:7px 14px;border-radius:999px;font-size:13px;font-weight:500;
  cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--forest);}
.curate button.on-promising{background:var(--mint);border-color:var(--mint);color:var(--forest);}
.curate button.on-dismissed{background:var(--rose);border-color:var(--rose);color:var(--forest);}
.status-badge{display:inline-block;padding:3px 10px;border-radius:999px;
  font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;}
.status-badge.promising{background:var(--mint);color:var(--forest);}
.status-badge.dismissed{background:var(--rose);color:var(--forest);}

/* empty / flash */
.empty{max-width:560px;margin:96px auto;text-align:center;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;
  border-radius:999px;border:none;background:var(--forest);color:var(--cream);
  font-size:15px;font-weight:500;cursor:pointer;}
.btn.ghost{background:transparent;border:1px solid var(--forest);color:var(--forest);}
.flash{background:var(--mint);color:var(--forest);padding:10px 18px;
  border-radius:12px;margin:18px 0;font-size:14px;font-weight:500;}
.batchhead{margin:50px 0 0;padding-top:24px;border-top:2px solid var(--forest);}
.adminbar{margin-top:10px;font-size:13px;color:var(--forest-deep);}

@media(max-width:820px){
  .wrap{padding:28px 20px 80px;}
  article.idea{grid-template-columns:1fr;gap:18px;}
  .scorebox{border-left:none;border-top:1px solid var(--line);padding:18px 0 0;flex-direction:row;
    justify-content:space-between;flex-wrap:wrap;}
  .detail-grid{grid-template-columns:1fr;gap:32px;}
  .sigrow{grid-template-columns:1fr;gap:10px;}
}
