/* ReplaceCost v58 — companion tools (rebuild cost, roof area, grants checker)
   Reuses the site tokens from site.css. Scoped under .nt-* so nothing else changes. */

.nt-lede-note{margin:0 0 6px;font-size:.9rem;color:var(--ink-3)}

/* ---------- form extras ---------- */
.nt-fieldset{margin:26px 0 0;padding:0;border:0}
.nt-fieldset>legend{padding:0;margin:0 0 12px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-d);font-weight:700;display:flex;align-items:center;gap:8px}
.nt-fieldset>legend::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal)}
.nt-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:22px}
.nt-actions .btn{margin-top:0}
.nt-btn-ghost{font-family:var(--f-display);font-weight:600;font-size:.92rem;color:var(--teal-d);background:#fff;border:1.5px solid #CDE0DC;border-radius:12px;padding:0 18px;min-height:48px;cursor:pointer;transition:background .16s,border-color .16s}
.nt-btn-ghost:hover{background:var(--teal-l);border-color:var(--teal)}
.nt-btn-ghost:focus-visible,.nt-seg label:focus-within{outline:3px solid rgba(14,124,107,.35);outline-offset:2px}
.field .nt-suffix{display:block;font-size:.75rem;color:var(--ink-3);margin-top:4px}

/* method switch (roof area) */
.nt-seg{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:0;border:0}
.nt-seg legend{width:100%;padding:0;margin:0 0 8px;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-weight:600}
.nt-seg label{position:relative;flex:1 1 200px;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;cursor:pointer;font-size:.9rem;line-height:1.35;transition:border-color .16s,background .16s,box-shadow .16s}
.nt-seg label b{display:block;font-family:var(--f-display);font-size:.96rem;margin-bottom:2px}
.nt-seg label span{color:var(--ink-3);font-size:.8rem}
.nt-seg input{position:absolute;opacity:0;inset:0;cursor:pointer}
.nt-seg label:has(input:checked){border-color:var(--teal);background:var(--teal-l);box-shadow:0 0 0 3px rgba(14,124,107,.12)}
.nt-panel[hidden]{display:none}

/* plane rows */
.nt-rows{display:grid;gap:9px;margin-top:6px}
.nt-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) 38px;gap:9px;align-items:end;padding:10px;border:1px solid #DFE9EC;border-radius:12px;background:#fff}
.nt-row .field{padding:0;border:0;background:none;box-shadow:none}
.nt-row .field::before{display:none}
.nt-row label{margin-bottom:4px}
.nt-del{height:44px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink-2);cursor:pointer;font-size:1.1rem;line-height:1}
.nt-del:hover{border-color:var(--red);color:var(--red)}

/* ---------- results ---------- */
.nt-out{margin-top:30px}
.nt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0 0 22px}
.nt-stat{position:relative;padding:16px 16px 15px 18px;border:1px solid #D5E6E2;border-radius:14px;background:var(--g-teal);overflow:hidden}
.nt-stat::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--teal)}
.nt-stat.warm{background:var(--amber-l);border-color:#F1DEBB}.nt-stat.warm::before{background:var(--amber)}
.nt-stat.bad{background:var(--red-l);border-color:#F2D1CC}.nt-stat.bad::before{background:var(--red)}
.nt-stat .k{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.nt-stat .n{font-family:var(--f-mono);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--ink);overflow-wrap:anywhere}
.nt-stat .s{font-size:.8rem;color:var(--ink-2);margin-top:5px;line-height:1.4}

.nt-h3{margin:30px 0 10px;font-size:1.12rem}
.nt-table{width:100%;border-collapse:collapse;font-size:.92rem}
.nt-table th{text-align:left;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding:0 8px 9px 0;border-bottom:1.5px solid var(--line)}
.nt-table td{padding:10px 8px 10px 0;border-bottom:1px solid var(--line-2);vertical-align:top}
.nt-table .num{text-align:right;font-family:var(--f-mono);white-space:nowrap}
.nt-table th.num{text-align:right}
.nt-table .q{display:block;color:var(--ink-3);font-size:.78rem;margin-top:2px}
.nt-table tr.total td{border-top:2px solid var(--ink);border-bottom:0;font-weight:700;padding-top:13px}
.nt-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

.nt-callout{margin:20px 0 0;padding:16px 18px;border:1px solid #D5E6E2;border-left:4px solid var(--teal);border-radius:12px;background:#fff;font-size:.93rem;line-height:1.6}
.nt-callout b{display:block;margin-bottom:4px;font-family:var(--f-display);font-size:1rem}
.nt-callout.warn{border-left-color:var(--amber);background:var(--amber-l);border-color:#F1DEBB}
.nt-callout.bad{border-left-color:var(--red);background:var(--red-l);border-color:#F2D1CC}
.nt-callout.good{border-left-color:var(--teal);background:var(--teal-l)}
.nt-callout p{margin:.4em 0 0}

/* coverage meter */
.nt-meter{margin:14px 0 6px}
.nt-meter-track{position:relative;height:16px;border-radius:99px;background:#E7EEF0;overflow:hidden}
.nt-meter-fill{position:absolute;inset:0 auto 0 0;border-radius:99px;background:linear-gradient(90deg,var(--teal),#2AA595)}
.nt-meter-fill.warn{background:linear-gradient(90deg,var(--amber),#E0A24A)}
.nt-meter-fill.bad{background:linear-gradient(90deg,var(--red),#E0675D)}
.nt-meter-mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.nt-meter-scale{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:.7rem;color:var(--ink-3);margin-top:6px;gap:8px;flex-wrap:wrap}
.nt-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-2);margin-top:8px}
.nt-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}

/* material table in roof area */
.nt-note-sm{margin:12px 0 0;font-size:.8rem;color:var(--ink-3);line-height:1.5}

/* ---------- program cards (grants checker) ---------- */
.nt-progs{display:grid;gap:14px;margin-top:6px}
.nt-prog{position:relative;padding:18px 18px 16px 20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--sh-2)}
.nt-prog::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;border-radius:16px 0 0 16px;background:var(--line)}
.nt-prog.strong::before{background:var(--teal)}
.nt-prog.maybe::before{background:var(--amber)}
.nt-prog.event::before{background:var(--sky)}
.nt-prog.low::before{background:#B7C6CC}
.nt-prog.low{opacity:.88}
.nt-prog-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.nt-prog h3{margin:0;font-size:1.08rem;letter-spacing:-.015em}
.nt-badge{display:inline-flex;align-items:center;font-family:var(--f-mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:99px;white-space:nowrap}
.nt-badge.strong{background:var(--teal-l);color:var(--teal-d)}
.nt-badge.maybe{background:var(--amber-l);color:#8A4F08}
.nt-badge.event{background:#E5F2FB;color:#075985}
.nt-badge.low{background:#EDF2F4;color:var(--ink-2)}
.nt-prog p{margin:.55em 0 0;font-size:.93rem;line-height:1.6;color:var(--ink-2)}
.nt-prog dl{margin:12px 0 0;display:grid;grid-template-columns:132px minmax(0,1fr);gap:8px 14px;font-size:.88rem}
.nt-prog dt{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}
.nt-prog dd{margin:0;color:var(--ink);line-height:1.55}
.nt-prog ul{margin:.5em 0 0;padding-left:1.1rem;font-size:.9rem;color:var(--ink-2)}
.nt-prog .nt-link{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-weight:600;font-size:.92rem}
.nt-why{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--paper);font-size:.84rem;color:var(--ink-2);line-height:1.5}
.nt-why b{color:var(--ink)}
.nt-checks{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.nt-checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:.92rem;line-height:1.5}
.nt-checks li::before{content:"";width:18px;height:18px;margin-top:2px;border-radius:5px;border:2px solid var(--teal);background:#fff}

/* diagram */
.nt-fig{margin:24px 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}
.nt-fig svg{display:block;width:100%;height:auto;max-width:560px;margin:0 auto}
.nt-fig figcaption{margin-top:10px;font-size:.84rem;color:var(--ink-3);text-align:center}

.nt-empty{padding:18px;border:1px dashed #C3D4D9;border-radius:12px;color:var(--ink-2);font-size:.92rem}
.nt-error{margin:12px 0 0;padding:12px 14px;border-radius:10px;background:var(--red-l);color:#8A1F17;font-size:.9rem}
.nt-error[hidden]{display:none}

@media (max-width:640px){
  .nt-row{grid-template-columns:1fr 1fr;}
  .nt-row .nt-del{grid-column:1 / -1;width:100%}
  .nt-prog dl{grid-template-columns:1fr;gap:2px}
  .nt-prog dt{padding-top:8px}
  .nt-stat .n{font-size:1.3rem}
}
@media print{
  .nt-actions,.masthead,.rail,.foot,.tool-universe,.ad{display:none!important}
  .nt-prog,.nt-stat,.nt-callout{break-inside:avoid}
}

/* ---------- v58.2: visual explainers inside companion-tool results ---------- */
.nt-out .result-lab{margin-bottom:22px}
.nt-viz{margin:24px 0 0;padding:20px 20px 16px;border:1px solid #D9E7EA;border-radius:18px;background:linear-gradient(180deg,#FBFDFD,#fff);box-shadow:0 18px 40px -34px rgba(7,28,35,.55);overflow:hidden}
.nt-viz-head{margin-bottom:12px}
.nt-viz-head span{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-d);font-weight:700}
.nt-viz-head span::before{content:"";width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,var(--calc-a,#0E7C6B),var(--calc-b,#0284C7))}
.nt-viz-head h4{margin:6px 0 4px;font-size:1.06rem;letter-spacing:-.015em}
.nt-viz-head p{margin:0;font-size:.86rem;color:var(--ink-2);line-height:1.5}
.nt-chart{display:block;width:100%;height:auto;overflow:visible;font-family:var(--f-body,inherit)}
.nt-chart .grid{stroke:#E3ECEF;stroke-width:1}
.nt-chart .tick{font:500 10.5px var(--f-mono);fill:#6A808A}
.nt-chart .lbl{font:600 12.5px var(--f-display,inherit);fill:#3C5560}.nt-chart .lbl.on{fill:var(--ink)}
.nt-chart .val{font:600 11.5px var(--f-mono);fill:#4B636D}.nt-chart .val.on{fill:var(--teal-d)}
.nt-chart .track{fill:#EEF4F5}
.nt-chart .bar{fill:#A9C9C3;transform-box:fill-box;transform-origin:left center}
.nt-chart .bar.on{fill:var(--teal)}
.nt-chart .bar.m0{fill:#64748B}.nt-chart .bar.m1{fill:#0E7C6B}.nt-chart .bar.m2{fill:#0284C7}.nt-chart .bar.m3{fill:#A16207}.nt-chart .bar.m4{fill:#7C3AED}
.nt-chart .seg{transform-box:fill-box;transform-origin:center bottom;stroke:#fff;stroke-width:1.5}
.nt-chart .colttl{font:700 12.5px var(--f-display,inherit);fill:var(--ink)}
.nt-chart .coltot{font:700 13px var(--f-mono);fill:var(--ink)}
.nt-chart .gap-line{fill:none;stroke:#94A3B8;stroke-width:1.4;stroke-dasharray:4 4}
.nt-chart .gaptxt{font:700 13px var(--f-display,inherit)}.nt-chart .gaptxt.bad{fill:var(--red)}.nt-chart .gaptxt.good{fill:var(--teal-d)}
/* roof drawing */
.nt-draw .cap{font:700 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;fill:#5D7680}
.nt-draw .eave{fill:#E9F5F2;stroke:var(--teal);stroke-width:2;stroke-dasharray:6 5}
.nt-draw .wall{fill:#CFE7E1;stroke:#0E7C6B;stroke-width:2}
.nt-draw .hip{fill:none;stroke:#0A5D50;stroke-width:1.6;opacity:.7}
.nt-draw .dim{font:500 11px var(--f-mono);fill:#4B636D}
.nt-draw .big{font:700 15px var(--f-mono);fill:#0A3F37;paint-order:stroke;stroke:#E9F5F2;stroke-width:5px}
.nt-draw .tri-fill{fill:#FFF4E0}
.nt-draw .tri{fill:none;stroke:#D97706;stroke-width:4;stroke-linecap:round}
.nt-draw .run{fill:none;stroke:#0E7C6B;stroke-width:2;stroke-dasharray:5 4}
.nt-draw .sq{fill:none;stroke:#0E7C6B;stroke-width:1.5}
.nt-draw .slope{font:700 13px var(--f-mono);fill:#B45309}
.nt-draw .ang{font:600 11px var(--f-mono);fill:#B45309}
.nt-tiles .tile{fill:#0E7C6B;opacity:.92;transform-box:fill-box;transform-origin:center}
.nt-tiles .tile.waste{fill:#F59E0B}
/* decision path */
.nt-path .cap{font:700 9.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;fill:#5D7680}
.nt-path .node{fill:#F3F7F8;stroke:#D5E2E5;stroke-width:1.4}
.nt-path .node.on{fill:#EEE7FE;stroke:#7C3AED;stroke-width:2}
.nt-path .node.result{fill:#7C3AED;stroke:#6D28D9}
.nt-path .ntext{font:600 12.5px var(--f-display,inherit);fill:#6A808A}
.nt-path .ntext.on{fill:#4C1D95}.nt-path .ntext.result{fill:#fff;font-weight:700}
.nt-path .edge{fill:none;stroke:#DCE6E9;stroke-width:1.6}
.nt-path .edge.on{stroke:#7C3AED;stroke-width:3;stroke-dasharray:6 5;animation:ntFlow 1.4s linear infinite}
.nt-path .small{font:600 11px var(--f-mono);fill:#B45309}
/* depreciation */
.nt-dep .dbar{fill:#C4B5FD;transform-box:fill-box;transform-origin:center bottom}
.nt-dep .dbar.first{fill:#7C3AED}
.nt-dep .cum{fill:none;stroke:#0E7C6B;stroke-width:2.6;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:0}
/* income gauge */
.nt-gauge .zone{transform-box:fill-box;transform-origin:left center;opacity:.9}
.nt-gauge .zt{font:700 11px var(--f-display,inherit);fill:#fff}
.nt-gauge .tickl{stroke:#0F1B22;stroke-width:1.2;opacity:.35}
.nt-gauge .tick{font-size:10px}
.nt-gauge .pin path{fill:var(--ink)}
.nt-gauge .you{font:700 12.5px var(--f-mono);fill:var(--ink)}
.nt-rank{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:9px;border-radius:8px;background:var(--teal-l);color:var(--teal-d);font:700 .78rem var(--f-mono);vertical-align:2px}
.nt-fit{height:6px;border-radius:9px;background:#EEF3F5;margin:12px 0 2px;overflow:hidden}
.nt-fit i{display:block;height:100%;width:var(--fit);border-radius:9px;background:linear-gradient(90deg,var(--teal),#22C55E)}
.nt-prog.maybe .nt-fit i{background:linear-gradient(90deg,#D97706,#F59E0B)}.nt-prog.event .nt-fit i{background:linear-gradient(90deg,#0369A1,#38BDF8)}.nt-prog.low .nt-fit i{background:#B7C6CC}
.nt-steps{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;counter-reset:st}
.nt-steps li{position:relative;padding:14px 12px 12px;border:1px solid #DCE8EB;border-radius:14px;background:#fff;counter-increment:st}
.nt-steps li::before{content:counter(st);display:grid;place-items:center;width:26px;height:26px;border-radius:9px;margin-bottom:8px;background:linear-gradient(135deg,var(--teal),#0284C7);color:#fff;font:700 .8rem var(--f-mono)}
.nt-steps b{display:block;font-size:.92rem;margin-bottom:3px}.nt-steps span{font-size:.82rem;color:var(--ink-2);line-height:1.45}
.nt-out a.btn,.nt-cta{color:#fff!important;text-decoration:none!important;display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:12px;background:linear-gradient(105deg,var(--calc-a,#0E7C6B),var(--calc-b,#0284C7));font-weight:700;box-shadow:0 13px 28px -16px rgba(14,124,107,.75)}
.nt-out a.btn:hover,.nt-cta:hover{filter:brightness(1.06)}
@keyframes ntFlow{to{stroke-dashoffset:-22}}
@keyframes ntGrowX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ntGrowY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes ntPop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes ntDraw{from{stroke-dashoffset:1400}to{stroke-dashoffset:0}}
@keyframes ntDrawP{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.reveal .nt-chart .bar,.reveal .nt-gauge .zone{animation:ntGrowX .8s var(--ease) both;animation-delay:calc(.35s + var(--d,0s))}
.reveal .nt-chart .seg,.reveal .nt-dep .dbar{animation:ntGrowY .7s var(--ease) both;animation-delay:calc(.35s + var(--d,0s))}
.reveal .nt-tiles .tile{animation:ntPop .35s var(--ease) both;animation-delay:calc(.3s + var(--d,0s))}
.reveal .nt-dep .cum{animation:ntDraw 1.8s var(--ease) .5s both}
.reveal.reveal-complete :is(.nt-chart .bar,.nt-chart .seg,.nt-chart .zone,.nt-chart .dbar,.nt-chart .tile,.nt-chart .cum,.nt-chart .edge){animation:none!important;transform:none!important}
.lowfx .nt-path .edge.on{animation:none}
@media (max-width:640px){
  .nt-viz{padding:16px 12px 12px;border-radius:14px}
  .nt-steps{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){:is(.nt-chart .bar,.nt-chart .seg,.nt-chart .zone,.nt-chart .dbar,.nt-chart .tile,.nt-chart .cum,.nt-chart .edge){animation:none!important}}
@media print{.nt-viz{break-inside:avoid;box-shadow:none}:is(.nt-chart .bar,.nt-chart .seg,.nt-chart .zone,.nt-chart .dbar,.nt-chart .tile,.nt-chart .cum,.nt-chart .edge){animation:none!important;transform:none!important}}

.nt-flow{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:22px}
.nt-flow li{position:relative;padding:12px 14px;border:1.5px solid #CDBEF9;border-radius:14px;background:#F5F1FF}
.nt-flow li small{display:block;font:700 .6rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#6D5BA8}
.nt-flow li b{display:block;margin-top:3px;color:#4C1D95}
.nt-flow li.out{background:#7C3AED;border-color:#6D28D9}.nt-flow li.out small{color:#E9DDFF}.nt-flow li.out b{color:#fff}
.nt-flow li+li::before{content:"";position:absolute;left:24px;top:-21px;height:20px;border-left:2.5px dashed #7C3AED}
.nt-path{max-width:640px;margin:0 auto}
.nt-chart .val.sm{font-size:10px}
@media (max-width:640px){.nt-table .hm{display:none}}
.nt-thresholds span{padding:5px 9px;border-radius:8px;background:#F1F6F7;font-family:var(--f-mono);font-size:.74rem}.nt-thresholds b{color:var(--ink)}

/* v59 companion tools: line charts, wall section, life and size scales */
.nt-lines .grid.zero{stroke:#94A3B8;stroke-width:1.2}
.nt-lines .ln{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.nt-lines .ln.s0,.nt-legend .lg.s0{stroke:#8B5CF6;background:#8B5CF6}
.nt-lines .ln.s1,.nt-legend .lg.s1{stroke:#0E7C6B;background:#0E7C6B}
.nt-lines .ln.s2,.nt-legend .lg.s2{stroke:#F59E0B;background:#F59E0B}
.nt-legend .lg{border-radius:3px;height:4px;width:18px;vertical-align:3px}
.nt-lines .mark{stroke:#94A3B8;stroke-width:1.4;stroke-dasharray:4 4}
.nt-lines .marktxt{font:600 10.5px var(--f-mono);fill:#4B636D}
.nt-lines .dot{fill:var(--ink);stroke:#fff;stroke-width:2.5}.nt-lines .dot.good{fill:var(--teal)}.nt-lines .dot.bad{fill:var(--red)}
.nt-lines .dottxt{font:700 12px var(--f-mono);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:4px}
.reveal .nt-lines .ln{stroke-dasharray:100;animation:ntDrawP 1.6s var(--ease) both;animation-delay:calc(.4s + var(--d,0s))}
.reveal .nt-lines .dot,.reveal .nt-lines .dottxt{animation:ntPop .45s var(--ease) 1.5s both;transform-box:fill-box;transform-origin:center}
.nt-wall .stud-bg{fill:#F6F1E7}.nt-wall .stud{fill:#E2CFAE}
.nt-wall .dry-wall{fill:#EEF2F4;stroke:#CBD5DA;stroke-width:1}
.nt-wall .cut-zone{fill:none;stroke:#C0342B;stroke-width:1.4;stroke-dasharray:5 4}
.nt-wall .wet{fill:#0284C7;opacity:.28;transform-box:fill-box;transform-origin:center bottom}
.nt-wall .waterline{stroke:#0284C7;stroke-width:2.4}
.nt-wall .cutline{stroke:#C0342B;stroke-width:2.4;stroke-dasharray:8 5}
.nt-wall .cuttxt{font:700 12px var(--f-mono);fill:#B42318;paint-order:stroke;stroke:#fff;stroke-width:4px}
.nt-wall .wtxt{font:600 11px var(--f-mono);fill:#075985}
.nt-wall .floor{fill:#8A6A45}
.reveal .nt-wall .wet{animation:ntGrowY 1.2s var(--ease) .4s both}
.reveal .nt-wall .cutline{animation:ntDraw 1.4s var(--ease) 1s both;stroke-dasharray:8 5}
.nt-life .zone{transform-box:fill-box;transform-origin:left center;opacity:.9}
.nt-life .pin path{fill:var(--ink)}
.nt-life .you{font:700 12.5px var(--f-mono);fill:var(--ink)}
.nt-life .sizetick{stroke:#334155;stroke-width:1.6}.nt-life .sizetick.on{stroke:var(--ink);stroke-width:3.2}
.nt-life .tick.on{font-weight:800;fill:var(--ink)}
.reveal .nt-life .zone{animation:ntGrowX .8s var(--ease) both;animation-delay:calc(.35s + var(--d,0s))}
.reveal .nt-life .pin{animation:ntPop .45s var(--ease) 1.1s both;transform-box:fill-box;transform-origin:center bottom}
.reveal.reveal-complete :is(.nt-lines .ln,.nt-lines .dot,.nt-lines .dottxt,.nt-wall .wet,.nt-wall .cutline,.nt-life .zone,.nt-life .pin){animation:none!important;transform:none!important;stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){:is(.nt-lines .ln,.nt-lines .dot,.nt-lines .dottxt,.nt-wall .wet,.nt-wall .cutline,.nt-life .zone,.nt-life .pin){animation:none!important}}
@media print{:is(.nt-lines .ln,.nt-lines .dot,.nt-lines .dottxt,.nt-wall .wet,.nt-wall .cutline,.nt-life .zone,.nt-life .pin){animation:none!important;transform:none!important;stroke-dashoffset:0}}
.nt-radio{display:flex;gap:8px;flex-wrap:wrap}
.nt-radio label{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1.5px solid #CFE0DC;border-radius:12px;background:#fff;font-weight:600;cursor:pointer}
.nt-radio label:has(input:checked){border-color:var(--teal);background:var(--teal-l);color:var(--teal-d)}
/* v59.1 key facts box */
.nt-facts{margin:22px 0 6px;padding:18px 20px 14px;border:1px solid #D5E6E2;border-radius:16px;background:linear-gradient(135deg,#F3FAF8,#F6F9FD)}
.nt-facts h2{margin:0 0 10px;font-size:1.02rem;letter-spacing:.01em}
.nt-facts ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}
.nt-facts li{position:relative;padding-left:20px;font-size:.92rem;line-height:1.5}
.nt-facts li::before{content:"";position:absolute;left:2px;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--teal)}
.nt-facts-src{margin:10px 0 0;font-size:.76rem;color:var(--ink-2)}
@media (max-width:640px){.nt-facts ul{grid-template-columns:1fr}}
