/* Forest Progress. The original flower and recorded metrics share one quiet scene. */
.ng-forest-page.np-page {
  --nf-muted:var(--text-secondary);
  --nf-top:13dvh; --nf-flower-height:55dvh;
  display:block; position:relative; isolation:isolate; padding:var(--nf-top) 2.1vw 18px 4.3vw;
  border:0; border-radius:0; background:none; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
  color:var(--text-primary); font-size:clamp(12px,.88vw,15px); scroll-padding:100px 0 24px;
}
.ng-forest-page::before { content:''; position:fixed; inset:0; z-index:-2; pointer-events:none; background:#061012 url('../assets/progress/forest-light-plate.webp') center / 100% 100% no-repeat; }
.ng-forest-page::after { content:''; position:fixed; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(1,8,11,.30),transparent 32%,transparent 59%,rgba(1,8,11,.23)),linear-gradient(0deg,rgba(1,8,11,.14),transparent 35%); }
body[data-space="progress"] .map-photo[data-bg-tab="progress"] { background-size:100% 100%; }
.nf-dashboard { position:relative; display:grid; grid-template-columns:minmax(0,2.055fr) minmax(330px,1fr); gap:2.9vw; height:calc(100dvh - var(--nf-top) - 18px); min-height:600px; }
.nf-garden { position:relative; min-height:510px; }
.nf-hero { position:absolute; top:4.7%; left:0; z-index:2; max-width:37%; }
.nf-hero h1 { font:300 clamp(32px,3.05vw,54px)/1.19 var(--font-display); letter-spacing:-.035em; margin:0; }
.nf-hero>p { color:var(--nf-muted); font-size:clamp(14px,1.2vw,21px); line-height:1.5; margin:20px 0 0; white-space:nowrap; }
.ng-forest-page .nf-flower.ng-bloom-art { position:absolute; width:calc(var(--nf-flower-height)*.97917); height:var(--nf-flower-height); min-height:0; margin:0; left:calc(63.3% - var(--nf-flower-height)*.5); top:calc(55dvh - var(--nf-top) - var(--nf-flower-height)*.818); z-index:1; pointer-events:none; display:block; }
.ng-forest-page .nf-flower .ng-generated-bloom { width:100%; height:100%; aspect-ratio:auto; min-height:0; }
.ng-forest-page .nf-flower .ng-generated-current { position:absolute; inset:0; width:100%; height:100%; overflow:visible; transform:none; filter:drop-shadow(0 0 6px rgba(250,227,155,.10)); opacity:1; }
/* The reference's flat pedestal supplies the stone; retain the original flower masks. */
.ng-forest-page .ng-video-growth>image { display:none; }
.ng-forest-page .ng-generated-current.is-awaiting { opacity:.18; }
.ng-forest-page[data-growth-stage="beginning"] .ng-generated-current.is-awaiting { opacity:.65; }
.ng-forest-page .ng-video-frame { transform-origin:900px 840px; transform:scale(.86); transition:opacity 1.9s cubic-bezier(.22,1,.36,1),transform 2.8s cubic-bezier(.16,1,.3,1); }
.ng-forest-page .ng-video-frame.is-active { transform:scale(1); }
.nf-growth-light { position:absolute; inset:-6% 8% 6% 20%; pointer-events:none; mix-blend-mode:screen; background:radial-gradient(ellipse at 50% var(--nf-glow-y,30%),rgba(255,236,185,.16),rgba(255,240,204,.045) 32%,transparent 65%); opacity:0; transform-origin:50% 85%; animation:nf-growth-arrival 2.8s cubic-bezier(.16,1,.3,1) both; }
.ng-forest-page[data-growth-stage="beginning"] .nf-growth-light { --nf-glow-y:80%; }
.ng-forest-page[data-growth-stage="blooming"] .nf-growth-light { --nf-glow-y:18%; }
@keyframes nf-growth-arrival { 0% { opacity:0; transform:scale(.7); } 35% { opacity:.85; } 65% { opacity:.55; } 100% { opacity:0; transform:scale(1.12); } }
.ng-forest-page .ng-wind-plant { animation:ng-bloom-breeze 17s ease-in-out infinite; transform-origin:900px 840px; animation-play-state:paused; }
.ng-forest-page .ng-bloom-aura { left:43%; top:16%; width:25%; background:radial-gradient(ellipse,rgba(255,236,174,.10),rgba(255,232,196,.025) 42%,transparent 70%); animation-duration:13s; }
.ng-forest-page .ng-live-motes i { width:1px; height:1px; background:#eee3bb; box-shadow:0 0 3px #fff0b550; }
.nf-stage-rail { position:absolute; left:86.5%; top:21.5%; display:flex; flex-direction:column; list-style:none; margin:0; padding:0; z-index:2; white-space:nowrap; }
.nf-stage-rail li { position:relative; display:flex; align-items:center; gap:16px; min-height:48px; color:var(--nf-muted); font-size:clamp(10px,.81vw,14px); }
.nf-stage-rail li>span { position:relative; width:18px; height:18px; flex-shrink:0; border:1px solid var(--text-muted); border-radius:50%; background:var(--chrome-glass); z-index:1; }
.nf-stage-rail li:not(:first-child)::before { content:''; position:absolute; width:1px; left:9px; height:48px; bottom:24px; background:var(--text-muted); }
.nf-stage-rail .is-current { color:var(--text-primary); }
.nf-stage-rail .is-current>span { background:var(--text-primary); border-color:var(--text-primary); box-shadow:0 0 14px rgba(255,255,255,.18); }
.nf-stage-rail .is-current>span::after { content:''; position:absolute; width:4px; height:4px; border-radius:50%; background:var(--bg-base); inset:0; margin:auto; }
.nf-metrics { position:absolute; bottom:0; left:0; right:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; z-index:3; }
.nf-metric-card,.nf-insight-panel { border:0; border-radius:var(--radius-md); background:var(--np-widget-surface); box-shadow:var(--np-widget-shadow); backdrop-filter:var(--np-widget-blur); -webkit-backdrop-filter:var(--np-widget-blur); }
.nf-metric-card { position:relative; overflow:hidden; padding:17px 25px 20px; min-height:245px; }
.nf-metric-card header { display:flex; align-items:center; gap:11px; }
.nf-metric-icon { width:43px; height:43px; display:grid; place-items:center; flex-shrink:0; color:var(--text-secondary); }
.nf-metric-icon svg { width:25px; height:25px; }
.nf-metric-card h3 { font-family:var(--font-display); font-size:clamp(11px,.91vw,16px); font-weight:300; margin:0; white-space:nowrap; }
.nf-metric-card header>button { margin-left:auto; display:flex; align-items:center; gap:6px; min-height:32px; padding:0; border:0; background:none; color:var(--text-secondary); font-family:var(--font-display); font-weight:300; font-size:clamp(10px,.75vw,13px); }
.nf-metric-card header>button:hover { color:var(--text-primary); }
.nf-metric-numbers { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:19px; }
.nf-metric-numbers>div:first-child { white-space:nowrap; }
.nf-metric-numbers strong { font-family:var(--font-display); font-size:clamp(23px,1.8vw,33px); font-weight:300; letter-spacing:-.035em; }
.nf-metric-numbers>div:first-child>span { display:block; margin-top:4px; color:var(--text-secondary); font-size:clamp(12px,.95vw,17px); }
.nf-metric-numbers>div:first-child>span.nf-inline-unit { display:inline; margin-left:4px; color:var(--text-primary); font-size:clamp(16px,1.3vw,23px); }
.nf-metric-delta { color:var(--text-primary); font-size:clamp(11px,.92vw,16px); }
.nf-metric-delta small { display:block; font-size:clamp(10px,.78vw,13px); color:var(--text-secondary); margin-top:7px; }
.nf-metric-delta.is-negative,.nf-insight-delta.is-negative strong { color:var(--text-secondary); }
.nf-no-comparison { color:var(--text-secondary); font-size:11px; }
.nf-mini-chart { display:flex; align-items:end; gap:clamp(9px,1.2vw,24px); height:62px; margin-top:16px; padding:0 4px; }
.nf-mini-chart>div { display:flex; flex-direction:column; align-items:center; justify-content:end; height:100%; flex:1; min-width:0; }
.nf-mini-chart i { display:block; width:11px; max-width:100%; height:calc(var(--bar-height)*.7); min-height:1px; background:linear-gradient(rgba(255,255,255,.75),rgba(255,255,255,.28)); border-radius:2px 2px 0 0; transition:height .8s cubic-bezier(.22,1,.36,1); }
.nf-mini-chart>div.is-missing i { height:1px; background:var(--border-soft); }
.nf-mini-chart span { color:var(--text-secondary); font-size:12px; margin-top:7px; }
.nf-card-explanation { position:absolute; inset:0; display:flex; flex-direction:column; padding:20px 24px; background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); z-index:4; overflow:auto; }
:is(.ng-forest-page,.nf-card-explanation,.nf-intention-popover,.np-select-options--portal) { color-scheme:dark; scrollbar-width:thin; scrollbar-color:var(--text-muted) transparent; }
:is(.ng-forest-page,.nf-card-explanation,.nf-intention-popover,.np-select-options--portal)::-webkit-scrollbar { width:4px; height:4px; background:transparent; }
:is(.ng-forest-page,.nf-card-explanation,.nf-intention-popover,.np-select-options--portal)::-webkit-scrollbar-thumb { border-radius:4px; background:var(--text-muted); }
:is(.ng-forest-page,.nf-card-explanation,.nf-intention-popover,.np-select-options--portal)::-webkit-scrollbar-thumb:hover { background:var(--text-secondary); }
:is(.ng-forest-page,.nf-card-explanation,.nf-intention-popover,.np-select-options--portal)::-webkit-scrollbar-button { display:none; width:0; height:0; }
@supports selector(::-webkit-scrollbar) { :is(.ng-forest-page,.nf-card-explanation,.nf-intention-popover,.np-select-options--portal) { scrollbar-width:auto; scrollbar-color:auto; } }
.nf-metric-card>div[inert] { visibility:hidden; }
.nf-card-explanation header { justify-content:space-between; }
.nf-card-explanation header>button { width:44px; min-height:44px; justify-content:center; }
.nf-card-explanation p { font-size:12px; line-height:1.6; color:var(--text-secondary); margin:10px 0 0; }
.nf-card-explanation .nf-evidence { color:var(--text-primary); }
.nf-text-action { display:inline-flex; align-items:center; gap:7px; background:none; border:0; padding:7px 0; min-height:32px; font-size:12px; color:var(--text-secondary); text-align:left; }
.nf-text-action:hover { color:var(--text-primary); }
.nf-text-action .np-icon { width:15px; height:15px; }
.nf-card-explanation>.nf-text-action { margin-top:auto; }
.nf-insight-panel { position:relative; padding:22px 29px 14px; display:flex; flex-direction:column; min-height:0; height:100%; }
.nf-period-toolbar { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin-bottom:22px; }
.nf-period-tabs { position:relative; display:flex; gap:2px; }
.nf-period-tabs button { position:relative; z-index:1; width:58px; height:46px; min-height:44px; padding:8px 12px; border:0; border-radius:4px; background:none; box-shadow:none; color:var(--text-muted); font:300 14px/1.4 var(--font-display); transition:color 300ms var(--chrome-ease); }
.nf-period-tabs button:hover { color:var(--text-secondary); }
.nf-period-tabs button[aria-pressed=true] { color:var(--text-primary); }
.nf-changes h2 { margin:0 0 10px; font-family:var(--font-display); font-size:clamp(20px,1.38vw,25px); font-weight:300; }
.nf-change-summary { margin:0; color:var(--text-secondary); font-size:clamp(12px,.94vw,16px); line-height:1.5; }
.nf-changes ul { list-style:none; padding:0; margin:18px 0 20px; display:grid; gap:16px; }
.nf-changes li { display:grid; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:20px; }
.nf-insight-icon { display:grid; place-items:center; width:58px; height:58px; color:var(--text-secondary); }
.nf-insight-icon svg { width:32px; height:32px; }
.nf-insight-panel h3 { margin:0 0 6px; font-family:var(--font-display); font-size:clamp(12px,.91vw,16px); font-weight:300; }
.nf-changes li p,.nf-helped p,.nf-next-step p { margin:0; color:var(--text-secondary); font-size:clamp(11px,.84vw,15px); line-height:1.55; }
.nf-insight-delta { align-self:center; min-width:95px; }
.nf-insight-delta strong { display:block; color:var(--text-primary); font-size:clamp(12px,.91vw,16px); font-weight:400; }
.nf-insight-delta small { display:block; margin-top:6px; color:var(--text-secondary); font-size:clamp(9px,.75vw,13px); }
.nf-helped,.nf-next-step { display:flex; align-items:flex-start; gap:25px; padding:20px 10px 18px; border-top:1px solid var(--border-soft); }
.nf-bars-icon { width:32px; height:32px; flex-shrink:0; fill:var(--text-secondary); }
.nf-helped>div,.nf-next-step>div { min-width:0; }
.nf-next-step { padding-bottom:10px; }
.nf-next-icon { width:32px; height:32px; display:grid; place-items:center; color:var(--text-secondary); flex-shrink:0; }
.nf-next-icon .np-icon { width:22px; height:22px; }
.nf-intention-settings { position:relative; flex:1; min-width:0; margin:0; }
.nf-next-step-trigger { display:flex; width:100%; min-height:44px; padding:0; border:0; background:none; text-align:left; color:inherit; }
.nf-step-title { display:flex; align-items:center; gap:8px; margin:0 0 6px; color:var(--text-primary); font:300 clamp(13px,.94vw,16px)/1.4 var(--font-display); }
.nf-step-title .np-icon { width:13px; height:13px; transition:transform .2s ease; }
.nf-next-step-trigger[aria-expanded=true] .nf-step-title .np-icon { transform:rotate(180deg); }
.nf-next-step-trigger:hover .nf-step-title { color:#fff; }
.nf-step-copy { display:block; color:var(--text-secondary); font-size:clamp(11px,.84vw,15px); line-height:1.55; }
.nf-intention-popover { position:fixed; z-index:120; width:min(360px,calc(100vw - 48px)); max-height:min(450px,calc(100dvh - 32px)); overflow-y:auto; border:1px solid var(--border-soft); padding:16px; border-radius:var(--panel-radius); background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); box-shadow:var(--panel-highlight),var(--panel-shadow); color:var(--text-primary); font:400 14px/1.6 var(--font-sans); animation:nf-popover-enter .18s ease-out; }
.nf-intention-popover button { color:inherit; cursor:pointer; }
.nf-intention-popover :is(button,input):focus-visible { outline:2px solid var(--text-primary); outline-offset:3px; }
.nf-intention-popover>header { display:flex; align-items:center; gap:12px; justify-content:space-between; margin-bottom:8px; }
.nf-intention-popover>header h3 { margin:0; font:300 18px/1.3 var(--font-display); }
.nf-intention-popover .nf-popover-close { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; padding:0; border:0; border-radius:8px; background:none; color:var(--text-secondary); }
.nf-intention-popover .nf-popover-close:hover { color:var(--text-primary); background:var(--panel-fill-hover); }
.nf-popover-close .np-icon { width:18px; height:18px; }
.nf-intention-popover .ng-next-options { margin-top:0; gap:6px; }
.nf-intention-popover .ng-next-options button { font:300 14px/1.5 var(--font-display)!important; padding:10px 12px; min-height:44px; border-color:transparent; }
.nf-intention-popover .ng-next-options button:hover { background:var(--panel-fill-hover); }
.nf-intention-popover .ng-next-options button[aria-pressed=true] { background:var(--panel-fill-active); border-color:var(--border-soft); }
.nf-intention-popover p { margin-top:16px; color:var(--text-secondary); font:400 14px/1.6 var(--font-sans); }
.nf-intention-popover label { display:flex; align-items:center; gap:10px; min-height:44px; margin-top:12px; cursor:pointer; }
@keyframes nf-popover-enter { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
.nf-intention-popover input[type=checkbox] { accent-color:#dedede; width:15px; height:15px; }
.nf-panel-footer { display:flex; justify-content:flex-end; margin-top:auto; padding-top:12px; }
.ng-forest-page .nf-trend-toggle { min-height:44px; padding:10px 16px; font:300 14px/1.4 var(--font-display); transition:background 300ms var(--chrome-ease),box-shadow 300ms var(--chrome-ease); }
.nf-trend-toggle .np-icon { width:18px; height:18px; }
.nf-trend-toggle[aria-expanded=true]>.np-icon:last-child { transform:rotate(-90deg); }
.ng-forest-page .ng-trend-detail { margin:24px 0 60px; width:100%; max-width:none; border:0; border-radius:var(--radius-md); background:var(--np-widget-surface); box-shadow:var(--np-widget-shadow); backdrop-filter:var(--np-widget-blur); -webkit-backdrop-filter:var(--np-widget-blur); }
.ng-forest-page .ng-trend-detail>.ng-card-head>.ng-heading { flex:1 1 260px; }
.nf-chart-controls { display:flex; flex-wrap:wrap; gap:16px; margin-left:auto; max-width:100%; }
.ng-forest-page .nf-chart-controls .np-select { width:210px; flex:1 1 180px; max-width:100%; }
.ng-forest-page .nf-chart-controls .np-select-trigger { white-space:nowrap; }
.ng-forest-page .ng-chart { color:var(--text-primary); }
.ng-forest-page .ng-chart svg { height:auto; min-height:0; max-height:none; }
.ng-forest-page .ng-chart svg text { fill:var(--text-secondary); }
.ng-forest-page .ng-gridline { stroke:var(--border-soft); }
.ng-forest-page .ng-baseline { stroke:var(--text-muted); }
.ng-forest-page .ng-point { stroke:var(--border-soft); }
.ng-forest-page .ng-chart-info,.ng-forest-page .ng-chart-info small,.ng-forest-page .ng-chart-key>span,.ng-forest-page .ng-heading p,.ng-forest-page .ng-method,.ng-forest-page .np-select-label { color:var(--text-secondary); }
.ng-forest-page .ng-chart-info strong,.ng-forest-page .ng-chart-key,.ng-forest-page .ng-heading .np-card-icon { color:var(--text-primary); }
.ng-forest-page .ng-heading .np-card-icon { background:none; border-radius:0; }
.ng-forest-page .np-select-trigger { background:var(--panel-fill-hover); color:var(--text-primary); border-color:var(--border-soft); }
.ng-forest-page .np-select-options { background:var(--panel-glass); backdrop-filter:var(--panel-blur); -webkit-backdrop-filter:var(--panel-blur); color:var(--text-primary); }
.ng-forest-page :is(button,input,select):focus-visible { outline-color:var(--text-primary); }
.nf-atmosphere { position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
.nf-sunray { position:absolute; inset:-10% -5%; transform-origin:28% 0%; mix-blend-mode:screen; opacity:.35; will-change:auto; }
.nf-sunray-wide { background:linear-gradient(105deg,transparent 22%,#e7e9d90d 28%,#eef0dc25 31%,#f8f2d817 35%,transparent 44%); clip-path:polygon(24% 0,36% 0,62% 72%,42% 72%); filter:blur(14px); animation:nf-dappled-sun 23s ease-in-out infinite; }
.nf-sunray-fine { background:linear-gradient(107deg,transparent 24%,#fff8d324 28%,transparent 30%,#ecebcd13 34%,transparent 38%); clip-path:polygon(22% 0,33% 0,54% 61%,40% 65%); filter:blur(6px); animation:nf-dappled-sun-fine 17s ease-in-out -9s infinite; }
.nf-haze { position:absolute; left:25%; top:15%; width:36%; height:45%; background:radial-gradient(ellipse,#efe8c506,transparent 65%); filter:blur(20px); mix-blend-mode:screen; animation:nf-forest-breath 31s ease-in-out infinite; }
.nf-water-reflection { position:absolute; left:21%; top:62%; width:42%; height:24%; background:repeating-linear-gradient(0deg,transparent 0 8px,#e8d7a30a 9px,transparent 10px 17px); mask-image:radial-gradient(ellipse,black,transparent 66%); -webkit-mask-image:radial-gradient(ellipse,black,transparent 66%); mix-blend-mode:screen; animation:nf-water-glint 19s ease-in-out infinite; }
.nf-atmosphere *, .ng-forest-page .ng-generated-bloom * { animation-play-state:paused!important; }
.nf-motion-on:not(.nf-scene-suspended) .nf-atmosphere *, .nf-motion-on:not(.nf-scene-suspended) .ng-generated-bloom.is-living * { animation-play-state:running!important; }
/* Keep the full-bleed reference unobstructed by idle companion overlays. */
body[data-space="progress"] .neva-notch[data-mode="compact"][data-has-windows="false"],
body[data-space="progress"] .neva-scenarios:has(.neva-scenarios-launch[aria-expanded="false"]) { visibility:hidden; pointer-events:none; }
@keyframes nf-dappled-sun { 0%,100% { opacity:.23; transform:rotate(-1.2deg) translateX(-.8%); } 38% { opacity:.54; } 64% { opacity:.35; transform:rotate(.8deg) translateX(.5%); } }
@keyframes nf-dappled-sun-fine { 0%,100% { opacity:.22; transform:translateX(-1%); } 45% { opacity:.48; transform:translateX(1.3%); } 72% { opacity:.17; } }
@keyframes nf-forest-breath { 0%,100% { opacity:.35; transform:translateX(-2%); } 55% { opacity:.8; transform:translateX(3%); } }
@keyframes nf-water-glint { 0%,100% { opacity:.2; transform:scaleX(.94) translateY(-2px); } 45% { opacity:.6; transform:scaleX(1.04) translateY(3px); } }
@media(max-width:1450px) and (min-width:1001px) {
  .nf-dashboard { grid-template-columns:minmax(0,2.02fr) minmax(325px,1fr); gap:2.2vw; }
  .nf-insight-panel { padding:20px; }
  .nf-period-tabs button { width:44px; height:44px; font-size:12px; }
  .nf-changes li { grid-template-columns:42px minmax(0,1fr) auto; gap:12px; }
  .nf-insight-icon { width:42px; height:42px; }
  .nf-insight-icon svg { width:26px; height:26px; }
  .nf-insight-delta { min-width:74px; }
  .nf-helped,.nf-next-step { gap:17px; padding:20px 0; }
  .nf-metric-card { padding:14px 16px 17px; min-height:205px; }
  .nf-metric-icon { width:30px; height:30px; }
  .nf-metric-icon svg { width:20px; height:20px; }
  .nf-metric-card header { gap:8px; }
  .nf-metric-numbers { flex-wrap:wrap; margin-top:18px; min-height:59px; gap:6px; }
  .nf-metric-delta small { margin-top:3px; }
  .nf-mini-chart { height:49px; gap:10px; margin-top:12px; }
  .nf-mini-chart span { font-size:10px; }
}
@media(min-width:1001px) and (max-height:750px) {
  .nf-insight-panel { padding-top:18px; }
  .nf-period-toolbar { margin-bottom:22px; }
  .nf-changes ul { gap:18px; margin:20px 0; }
  .nf-helped,.nf-next-step { padding-block:20px 14px; }
  .nf-stage-rail li { min-height:42px; }
  .nf-stage-rail li:not(:first-child)::before { height:42px; bottom:21px; }
}
@media(max-width:1000px) {
  .ng-forest-page.np-page { --nf-top:136px; --nf-flower-height:440px; padding:var(--nf-top) 24px 50px; }
  .nf-dashboard { display:flex; flex-direction:column; gap:24px; min-height:0; height:auto; }
  .nf-garden { height:650px; min-height:650px; }
  .nf-hero { top:12px; max-width:44%; }
  .nf-hero h1 { font-size:36px; }
  .nf-hero>p { white-space:normal; margin-top:16px; font-size:16px; }
  .ng-forest-page .nf-flower.ng-bloom-art { left:calc(60% - 220px); top:5px; }
  .ng-forest-page .ng-video-growth>image { display:block; }
  .nf-stage-rail { left:80%; top:130px; }
  .nf-stage-rail li { font-size:11px; gap:10px; }
  .nf-metrics { gap:12px; }
  .nf-metric-card { padding:16px; }
  .nf-metric-card h3 { font-size:12px; }
  .nf-metric-icon { width:30px; height:30px; }
  .nf-metric-icon svg { width:20px; height:20px; }
  .nf-metric-numbers { flex-wrap:wrap; min-height:65px; }
  .nf-metric-numbers strong { font-size:27px; }
  .nf-metric-numbers>div:first-child>span.nf-inline-unit { font-size:17px; }
  .nf-metric-delta { font-size:12px; }
  .nf-insight-panel { padding:24px; }
  .nf-insight-panel h3 { font-size:15px; }
  .nf-changes li p,.nf-helped p { font-size:14px; }
  .nf-insight-delta strong { font-size:15px; }
  .nf-insight-delta small { font-size:12px; }
  .nf-changes h2 { font-size:25px; }
  .ng-forest-page::before { background-size:auto 880px; background-position:42% top; background-color:#061012; }
  .ng-forest-page::after { background:linear-gradient(0deg,#061012 0%,#061012aa 24%,transparent 60%); }
}
@media(max-width:640px) {
  .nf-chart-controls { width:100%; }
  .ng-forest-page.np-page { --nf-top:135px; --nf-flower-height:380px; padding-inline:18px; }
  .nf-garden { height:auto; min-height:0; display:flex; flex-direction:column; padding-top:470px; }
  .nf-hero { max-width:100%; top:0; }
  .nf-hero h1 { font-size:33px; line-height:1.15; }
  .nf-hero>p { font-size:14px; margin-top:12px; }
  .ng-forest-page .nf-flower.ng-bloom-art { left:calc(49% - 190px); top:145px; }
  .nf-stage-rail { left:83%; top:260px; }
  .nf-stage-rail li { min-height:33px; font-size:10px; gap:9px; }
  .nf-stage-rail li>span { width:12px; height:12px; }
  .nf-stage-rail li:not(:first-child)::before { height:33px; bottom:16px; left:6px; }
  .nf-metrics { position:relative; grid-template-columns:1fr; gap:14px; }
  .nf-metric-card { padding:18px 22px; min-height:210px; }
  .nf-metric-icon { width:40px; height:40px; }
  .nf-metric-icon svg { width:24px; height:24px; }
  .nf-metric-card h3 { font-size:15px; }
  .nf-metric-card header>button { font-size:12px; min-height:44px; }
  .nf-metric-numbers { flex-wrap:nowrap; min-height:0; }
  .nf-metric-numbers strong { font-size:31px; }
  .nf-metric-numbers>div:first-child>span.nf-inline-unit { font-size:20px; }
  .nf-metric-numbers>div:first-child>span { font-size:15px; }
  .nf-metric-delta { font-size:14px; }
  .nf-metric-delta small { font-size:11px; }
  .nf-mini-chart { height:53px; margin-top:15px; }
  .nf-insight-panel { padding:22px 18px 17px; }
  .nf-period-tabs button { width:43px; height:44px; font-size:12px; }
  .nf-period-tabs { gap:5px; }
  .nf-changes li { gap:12px; grid-template-columns:40px minmax(0,1fr) auto; }
  .nf-insight-icon { width:40px; height:40px; }
  .nf-insight-icon svg { width:25px; height:25px; }
  .nf-insight-delta { min-width:75px; }
  .nf-insight-panel h3 { font-size:13px; }
  .nf-changes li p,.nf-helped p { font-size:12px; }
  .nf-insight-delta strong { font-size:13px; }
  .nf-insight-delta small { font-size:10px; }
  .nf-helped,.nf-next-step { gap:18px; padding-inline:0; }
  .nf-text-action { min-height:44px; }
  .nf-card-explanation header>button { width:44px; min-height:44px; }
  .ng-forest-page .ng-trend-detail { padding:20px 16px; }
  .ng-forest-page::before { background-size:auto 900px; background-position:41% top; }
  .ng-forest-page::after { background:linear-gradient(0deg,#061012 10%,#061012bd 57%,transparent 89%); }
}
@media(prefers-reduced-motion:reduce) {
  .nf-atmosphere *,.ng-forest-page .ng-generated-bloom *,.nf-intention-popover { animation:none!important; }
  .ng-forest-page .ng-video-frame,.nf-mini-chart i,.nf-period-tabs button,.nf-trend-toggle,.nf-step-title .np-icon { transition:none; }
}
