/* Valuation sensitivity: an editorial glimpse of the two-way sensitivity table under a
   risk-adjusted NPV. An input recomputes it, Fern marks the region the evidence supports,
   and the management case opens into its bridge to the evidence case, one line of which
   opens onto its source.
   Colours follow the owner's reference: heat from rose through near-white to mint, sliders
   rose through sand to mint, a light-blue base case.
   Fixed 620 x 440 artboard, zoomed to fit its container by the script (--sn-fit).
   Without the script, or under reduced motion, the finished frame shows. */
[data-sn]{
  --sn-ink:#19222d;
  --sn-muted:#9ba1ae;
  --sn-rule:rgb(25 34 45 / .07);
  --sn-block:rgb(25 34 45 / .22);
  --sn-blue:#2a82cb;
  --sn-base:#b6d9f3;
  --sn-zone:#8dbdb4;
  --sn-mgmt:#c0908c;
  --sn-neg:#a8716d;
  --sn-pos:#4f8f86;
  --sn-neg-block:#d4bcbb;
  --sn-pos-block:#b3d3ce;
  --sn-track:linear-gradient(90deg, #d0bcbd 0%, #d9c5bd 25%, #e5d1c0 50%, #d2d4c7 75%, #c3d8d7 100%);
  --sn-fit:1;
  width:100%;
  max-width:620px;
  font-family:'Experimental', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  color:var(--sn-ink);
  -webkit-font-smoothing:antialiased;
}
[data-sn] *{ box-sizing:border-box; }
.sn-stage{ position:relative; width:620px; height:440px; zoom:var(--sn-fit); }
.sn-card{
  position:absolute; inset:0;
  background:#fff; border-radius:16px;
  box-shadow:0 0 0 1px rgb(25 34 45 / .07), 0 1px 2px rgb(25 34 45 / .04), 0 18px 40px -18px rgb(25 34 45 / .2);
  overflow:hidden;
}
.sn-abs{ position:absolute; }

.sn-title{ left:28px; top:26px; font-size:15px; font-weight:500; letter-spacing:-.01em; }
/* The table's title follows the model's method. */
.sn-title .t2{ display:none; }

/* Inputs off both axes. */
.sn-lever{ top:64px; width:264px; height:44px; }
.sn-lever .k{ position:absolute; left:0; top:0; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--sn-muted); }
.sn-lever .track{ position:absolute; left:0; right:0; top:24px; height:8px; border-radius:4px; background:var(--sn-track); transform-origin:0 50%; }
.sn-lever--rev .track{ background:linear-gradient(270deg, #d0bcbd 0%, #d9c5bd 25%, #e5d1c0 50%, #d2d4c7 75%, #c3d8d7 100%); }
.sn-lever .thumb{ position:absolute; top:28px; width:0; height:0; left:var(--t); }
.sn-lever .thumb i{ position:absolute; left:-9px; top:-9px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 0 0 1px rgb(25 34 45 / .08), 0 2px 5px rgb(25 34 45 / .18); }

/* The table. Sentence case on the axis label: uppercase would turn PoS into POS. */
.sn-axis{ left:28px; top:128px; font-size:10.5px; color:var(--sn-muted); }
.sn-col{ top:128px; width:88.4px; font-size:10.5px; color:var(--sn-muted); font-variant-numeric:tabular-nums; padding-left:12px; }
.sn-headrule{ left:28px; top:146px; width:564px; height:1px; background:var(--sn-rule); transform-origin:0 50%; }
.sn-row{ left:28px; width:122px; font-size:10.5px; line-height:44px; color:var(--sn-muted); font-variant-numeric:tabular-nums; }
.sn-rowrule{ left:28px; width:564px; height:1px; background:var(--sn-rule); transform-origin:0 50%; }
.sn-cell{ width:88.4px; height:44px; background:var(--c); }
.sn-cell b{ position:absolute; right:12px; top:18px; height:8px; width:var(--w); border-radius:2px; background:var(--sn-block); }
.sn-cell.out{ filter:saturate(.2); opacity:.45; }

/* The base case. */
.sn-base{ width:88.4px; height:44px; border:1.5px solid var(--sn-base); border-radius:6px; }
.sn-zone{ border:1.5px solid var(--sn-zone); border-radius:6px; box-shadow:0 0 0 3px rgb(141 189 180 / .16); }
.sn-co{ width:88.4px; height:44px; border:1.5px solid var(--sn-mgmt); border-radius:6px; }
.sn-legend{ left:28px; top:400px; display:flex; gap:18px; font-size:10.5px; color:var(--sn-muted); }
.sn-legend span{ display:flex; align-items:center; gap:7px; }
.sn-legend i{ width:14px; height:10px; border-radius:3px; }
.sn-legend .b i{ border:1.5px solid var(--sn-base); }
.sn-legend .z i{ border:1.5px solid var(--sn-zone); }
.sn-legend .c i{ border:1.5px solid var(--sn-mgmt); }
.sn-legend .d i{ border:1.5px dashed rgb(25 34 45 / .6); }
.sn-dil{ width:88.4px; height:44px; border:1.5px dashed rgb(25 34 45 / .6); border-radius:6px; }

/* The base case's valuation build, in the house model: a calm three-column sheet (line item,
   basis, value). The method can change and lines can be added; inputs fed by Fern's own analysis
   say where they come from in the basis column. Rows sit in one column, so adding or removing a
   row reflows the rest. Values are number-shaped blocks, not bars. */
.sn-detail{
  left:0; top:0; width:620px; height:440px;
  background:#fff; border-radius:16px;
  overflow:hidden; visibility:hidden;
}
.sn-head{ position:absolute; left:28px; right:28px; top:26px; display:flex; align-items:baseline; gap:10px; }
.sn-head .t{ font-size:14px; font-weight:500; letter-spacing:-.01em; }
.sn-head .meta{ font-size:11px; color:var(--sn-muted); }
.sn-method{
  margin-left:auto; display:flex; align-items:center; gap:6px;
  height:24px; padding:0 9px; border-radius:6px;
  font-size:11px; color:var(--sn-ink); background:rgb(25 34 45 / .04);
}
.sn-method .m2{ display:none; }
.sn-method svg{ width:8px; height:8px; color:var(--sn-muted); }
.sn-cols{
  position:absolute; left:28px; right:28px; top:64px; height:16px;
  display:grid; grid-template-columns:170px 1fr 90px;
  font-size:9px; letter-spacing:.09em; text-transform:uppercase; color:var(--sn-muted);
  border-bottom:1px solid var(--sn-rule);
}
.sn-cols span:last-child{ text-align:right; }
.sn-menu{
  position:absolute; right:26px; top:56px; width:192px; padding:4px;
  background:#fff; border-radius:9px;
  box-shadow:0 0 0 1px rgb(25 34 45 / .08), 0 12px 28px -10px rgb(25 34 45 / .28);
  visibility:hidden; z-index:2; transform-origin:100% 0;
}
.sn-menu .o{ display:flex; align-items:center; justify-content:space-between; height:28px; padding:0 10px; border-radius:6px; font-size:11px; color:var(--sn-ink); }
.sn-menu .o svg{ width:10px; height:8px; color:var(--sn-blue); }

.sn-body{ position:absolute; left:28px; right:28px; top:86px; display:flex; flex-direction:column; }
.sn-sec{ flex:none; height:20px; padding-top:8px; font-size:9px; letter-spacing:.09em; text-transform:uppercase; color:var(--sn-muted); }
.sn-r{ position:relative; flex:none; display:grid; grid-template-columns:170px 1fr 90px; align-items:center; height:24px; font-size:11.5px; overflow:hidden; border-radius:4px; }
.sn-r .li{ white-space:nowrap; color:var(--sn-ink); }
.sn-r .li b{ font-weight:inherit; }
.sn-r .li .l2{ display:none; }
.sn-r .bs{ display:flex; align-items:center; gap:10px; min-width:0; }
.sn-r .bs .b2{ display:none; }
.sn-r .gl{ display:block; height:5px; border-radius:3px; background:#e6e8ec; flex:none; }
.sn-r .lk{ display:flex; align-items:center; gap:5px; font-style:normal; font-size:10.5px; color:var(--sn-blue); white-space:nowrap; }
.sn-r .lk i{ width:5px; height:5px; border-radius:50%; background:var(--sn-blue); }
.sn-r .rt{ font-size:10.5px; color:rgb(25 34 45 / .7); }
.sn-r .vl{ display:flex; align-items:center; justify-content:flex-end; gap:5px; }
.sn-r .ng{ font-size:11px; color:var(--sn-muted); }
.sn-r .nb{ display:block; height:8px; border-radius:2px; background:#cfd3d9; }
.sn-r .nb.sub{ background:#9aa1ab; }
.sn-r .nb.tot{ background:var(--sn-ink); opacity:.72; }
.sn-r .mul{ font-size:11px; color:var(--sn-ink); font-variant-numeric:tabular-nums; }
.sn-strong{ height:28px; }
.sn-strong .li{ font-weight:500; }
.sn-new{ height:0; }
.sn-add{ height:20px; }
.sn-add .li{ font-size:10.5px; color:var(--sn-blue); }
.sn-rule{ flex:none; height:1px; margin:4px 0 2px; background:var(--sn-rule); }
.sn-r .vs{ font-size:10.5px; color:var(--sn-muted); }
.sn-r .vs b{ font-weight:500; color:var(--sn-neg); margin-left:4px; font-variant-numeric:tabular-nums; }
.sn-r .vs .d1, .sn-r .vs .d2{ display:none; }
.sn-legend .m i{ background:linear-gradient(90deg, #d4bcbb, #fcfbfb, #c5ddda); box-shadow:inset 0 0 0 1px rgb(25 34 45 / .08); }

.sn-cursor{ left:0; top:0; width:18px; height:24px; opacity:0; pointer-events:none; transform-origin:1px 1px; }
