/* NBVN publication system: rendered report artwork. Units are container-relative so every piece scales like print. */
.pub{--p:#eee;--i:#111;--a:#888;--h:#111;--m:#999;position:relative;container-type:inline-size;background:var(--p);color:var(--i);overflow:hidden;font-family:var(--f-text);font-feature-settings:"kern","tnum" 0;contain:layout paint;-webkit-font-smoothing:antialiased}
.pub.f-serif{font-family:var(--f-serif)}
.pub .art{position:absolute;inset:0;width:100%;height:100%;display:block}
.pub-tag{position:absolute;font-family:var(--f-mono);font-size:max(7px,1.9cqw);letter-spacing:.06em;text-transform:uppercase;line-height:1.25;opacity:.78;display:flex;flex-direction:column}
.pub-tag i{font-style:normal;opacity:.7}
/* cover */
.cover{aspect-ratio:210/297;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.cover .cv-top{position:absolute;left:7.5cqw;right:7.5cqw;top:7cqw;display:flex;justify-content:space-between;align-items:flex-start;font-size:3.4cqw;line-height:1.15;font-weight:600;letter-spacing:-.01em;z-index:1}
.cover .cv-doc{text-align:right;font-weight:400}
.cover .cv-title{position:absolute;left:7cqw;right:7cqw;margin:0;font-family:var(--f-display);font-weight:600;font-size:14.5cqw;line-height:.9;letter-spacing:-.045em;z-index:1}
.cover .cv-title span{display:block}
.cover .cv-foot{position:absolute;left:7.5cqw;right:7.5cqw;bottom:6.5cqw;display:flex;justify-content:space-between;align-items:flex-end;z-index:1}
.cover .cv-foot .pub-tag{position:static}
.cover .cv-sector{font-size:2.5cqw;opacity:.75;text-align:right;max-width:40%}
.cover.art-horizon .cv-title{bottom:22cqw;color:var(--i)}
.cover.art-horizon .cv-title span:last-child{color:var(--h)}
.cover.art-contour .cv-title{top:24cqw;color:var(--i)}
.cover.art-contour .art-contour{background:var(--i);-webkit-mask:url(/img/art/contour.svg) center/cover no-repeat;mask:url(/img/art/contour.svg) center/cover no-repeat;opacity:.9}
.cover.art-contour::after{content:"";position:absolute;left:7.5cqw;top:62%;width:16cqw;height:16cqw;border-radius:50%;background:var(--a);mix-blend-mode:multiply}
.cover.art-numeral .cv-title{top:24cqw;font-family:var(--f-serif);font-weight:400;font-size:13cqw;letter-spacing:-.02em;line-height:.95}
.cover.art-numeral .cv-title span:last-child{font-style:italic}
.cover.art-numeral .art-numeral{display:flex;align-items:flex-end;justify-content:flex-end}
.cover.art-numeral .art-numeral span{font-family:var(--f-serif);font-size:118cqw;line-height:.72;letter-spacing:-.06em;color:var(--a);margin:0 -9cqw -3cqw 0;font-weight:300}
.cover.art-numeral .art-numeral::before{content:"";position:absolute;left:7.5cqw;right:7.5cqw;top:20cqw;border-top:.35cqw solid var(--i)}
.cover.art-numeral .cv-foot{color:var(--p)}
.cover.art-dots .cv-title{bottom:18cqw}
.cover.art-dots .cv-title span:first-child{color:var(--a)}
/* spread */
.spread{aspect-ratio:420/297;display:grid;grid-template-columns:1fr 1fr}
.spread::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:6cqw;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(0,0,0,.07) 48%,rgba(0,0,0,.12) 50%,rgba(0,0,0,.05) 52%,transparent);pointer-events:none}
.spread .page{position:relative;padding:5.6cqw 3.4cqw 5cqw 3.6cqw;display:flex;flex-direction:column;min-width:0}
.spread .pr{padding-left:4cqw}
.spread .folio{position:absolute;top:2.2cqw;left:3.6cqw;right:3.4cqw;display:flex;gap:1.6cqw;font-size:.82cqw;letter-spacing:.02em;opacity:.7}
.spread .folio span:last-child{margin-left:auto}
.spread .pr .folio{display:none}
.spread .pn{position:absolute;bottom:2.2cqw;font-size:.85cqw;opacity:.7;font-feature-settings:"tnum"}
.spread .pl .pn{left:3.6cqw}.spread .pr .pn{right:3.4cqw}
.spread .pub-tag{right:auto;left:53.6cqw;bottom:2.1cqw;font-size:.72cqw;flex-direction:row;gap:.8cqw}
.spread .sp-h{margin:1.6cqw 0 1.6cqw;font-family:var(--f-display);font-size:4.7cqw;line-height:.94;letter-spacing:-.04em;font-weight:600}
.spread .sp-h.serif{font-family:var(--f-serif);font-weight:400;letter-spacing:-.02em;font-size:4.4cqw}
.spread .sp-lede{font-size:1.32cqw;line-height:1.34;max-width:30cqw;margin:0 0 auto;letter-spacing:-.005em}
.spread .sp-k{margin:1.2cqw 0 .25cqw;font-size:1.25cqw;font-weight:600;letter-spacing:-.01em}
.spread .sp-k.sm{font-size:.95cqw;margin-top:1.4cqw}
.spread .sp-sub{margin:0 0 1cqw;font-size:.9cqw;opacity:.7}
.spread .sp-chart{width:100%}
.spread .sp-chart.mini{margin-top:.2cqw}
.spread .sp-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.6cqw;font-size:.92cqw;line-height:1.38;margin-top:1.4cqw}
.spread .sp-cols p{margin:0}
.spread .src{margin:auto 0 0;padding-top:1cqw;font-size:.72cqw;opacity:.62}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:2.2cqw 2cqw;margin:2cqw 0 0;padding-top:1.4cqw;border-top:.12cqw solid currentColor}
.kpis div{min-width:0}
.kpis dt{font-size:.88cqw;opacity:.78;margin-bottom:.4cqw}
.kpis dd{margin:0;font-size:1cqw;line-height:1}
.kpis b{font-family:var(--f-display);font-size:4.1cqw;font-weight:500;letter-spacing:-.04em;line-height:1;font-feature-settings:"tnum"}
.pub.f-serif .kpis b{font-family:var(--f-serif);font-weight:400;letter-spacing:-.02em}
.kpis small{font-size:.9cqw;margin-left:.45cqw;opacity:.75}
.kpis .dl{font-size:.85cqw;color:var(--h);margin-top:.35cqw;font-weight:500}
.chart{display:block;width:100%;height:auto;overflow:visible}
.chart text{fill:currentColor;font-family:var(--f-text);font-feature-settings:"tnum"}
.chart .ax{font-size:6.2px;opacity:.7}
.chart .ax.up{text-transform:uppercase;letter-spacing:.06em;font-size:5.4px}
.chart .vl{font-size:6.6px;font-weight:600}
.chart .vl.hi{fill:var(--h)}
.chart .gl{stroke:currentColor;stroke-width:.3;opacity:.28}
.chart .gl.strong{opacity:.7;stroke-width:.5}
.chart .bar{fill:currentColor;opacity:.86}
.chart .bar.hi{fill:var(--h);opacity:1}
.chart .ln{fill:none;stroke:var(--h);stroke-width:1.3}
.chart .dot{fill:var(--p);stroke:var(--h);stroke-width:1.1}
.chart .dot.hi{fill:var(--h)}
.chart .area{fill:var(--a);opacity:.16}
.chart .stk{stroke:var(--p);stroke-width:.5}
.chart .stk.hollow{fill:none!important;stroke:currentColor;stroke-dasharray:1.4 1.4;stroke-width:.5}
.sp-tbl{width:100%;border-collapse:collapse;font-size:.88cqw;margin-top:1.4cqw;font-feature-settings:"tnum"}
.sp-tbl th,.sp-tbl td{text-align:right;padding:.36cqw 0;border-bottom:.08cqw solid color-mix(in srgb,currentColor 30%,transparent);font-weight:400}
.sp-tbl th:first-child{text-align:left}
.sp-tbl thead th{font-weight:600;border-bottom-color:currentColor}
/* spread variants */
.sp-glance .pr .sp-chart{margin-top:.6cqw}
.sp-glance{--h2:var(--h)}
.sp-mix .pl{padding:0}
.sp-mix .pl .folio{color:var(--p);z-index:2}
.sp-mix .sp-bleed{position:absolute;inset:0;background:var(--i)}
.sp-mix .sp-bleed .art-contour{background:var(--a);-webkit-mask:url(/img/art/contour.svg) center/cover no-repeat;mask:url(/img/art/contour.svg) center/cover no-repeat;opacity:.85}
.sp-mix .sp-quote{position:absolute;left:3.6cqw;right:5cqw;bottom:5cqw;margin:0;color:var(--p);font-family:var(--f-display);font-size:3.3cqw;line-height:1.02;letter-spacing:-.035em;font-weight:500}
.sp-mix .pl .pn{color:var(--p);z-index:2}
.sp-letter .pl{padding-right:3cqw}
.sp-letter .sp-body{columns:2;column-gap:1.6cqw;font-size:.98cqw;line-height:1.42;hyphens:auto;-webkit-hyphens:auto;text-align:left}
.sp-letter .sp-body p{margin:0 0 .8cqw}
.sp-letter .drop{float:left;font-size:4.3cqw;line-height:.82;margin:.25cqw .5cqw 0 0;color:var(--h)}
.sp-letter .sig{font-style:italic}
.sp-letter .sig span{font-style:normal;opacity:.7;font-size:.85cqw}
.sp-letter .kpis{grid-template-columns:1fr 1fr 1fr;margin-top:1.8cqw}
.sp-letter .kpis b{font-size:3.1cqw}
.sp-pipeline .kpis{margin-top:auto}
/* slide */
.slide{aspect-ratio:16/9;padding:4.5% 5%;display:grid;grid-template-columns:1fr 1.1fr;grid-template-rows:auto 1fr auto;column-gap:5cqw}
.slide .sl-head{grid-column:1/-1;display:flex;justify-content:space-between;font-size:1.5cqw;opacity:.75;padding-bottom:1.4cqw;border-bottom:.14cqw solid currentColor;margin-bottom:3cqw}
.slide .sl-h{margin:0;font-family:var(--f-display);font-size:6.2cqw;line-height:.92;letter-spacing:-.045em;font-weight:600;align-self:start}
.slide .sl-p{grid-column:1;font-size:1.7cqw;line-height:1.35;max-width:32cqw;margin:2cqw 0 0;align-self:end;opacity:.85}
.slide .sl-grid{grid-column:1;grid-row:3;display:grid;grid-template-columns:1fr 1fr;gap:2cqw;margin-top:2cqw}
.slide .sl-grid div{border-top:.12cqw solid currentColor;padding-top:.8cqw}
.slide .sl-grid b{display:block;font-family:var(--f-display);font-size:3.6cqw;font-weight:500;letter-spacing:-.04em;line-height:1.05}
.slide .sl-grid small{font-size:1.2cqw;margin-left:.4cqw;opacity:.75}
.slide .sl-l,.slide .sl-d{font-size:1.15cqw;opacity:.75;display:block}
.slide .sl-d{color:var(--h);opacity:1}
.slide .sl-chart{grid-column:2;grid-row:2/4;align-self:end}
.slide.sl-capex .sl-chart{grid-row:2/4}
.slide .src{position:absolute;left:5cqw;bottom:1.6cqw;margin:0;font-size:1cqw;opacity:.6}
.slide.sl-kpi .sl-h{grid-row:2}
.release{aspect-ratio:4/5}
.sheet-sys{aspect-ratio:5/4;padding:6%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;gap:3cqw 5cqw}
.sheet-sys .ss-top{grid-column:1/-1;display:flex;justify-content:space-between;font-size:2.3cqw;border-bottom:.25cqw solid currentColor;padding-bottom:2cqw}
.sheet-sys .ss-aa{font-family:var(--f-display);font-size:30cqw;line-height:.8;letter-spacing:-.06em;font-weight:600;align-self:end}
.pub.f-serif .ss-aa{font-family:var(--f-serif);font-weight:400}
.sheet-sys .ss-spec{display:grid;grid-template-columns:auto 1fr;gap:1.2cqw 3cqw;font-size:2.1cqw;align-self:end;line-height:1.3}
.sheet-sys .ss-spec span:nth-child(odd){opacity:.6}
.sheet-sys .ss-sw{display:flex;gap:1cqw;align-self:end}
.sheet-sys .ss-sw i{flex:1;aspect-ratio:1/1.3;box-shadow:inset 0 0 0 .15cqw color-mix(in srgb,var(--i) 25%,transparent)}
.sheet-sys .ss-grid{align-self:stretch;min-height:12cqw;background-image:linear-gradient(90deg,color-mix(in srgb,var(--h) 40%,transparent) .15cqw,transparent .15cqw);background-size:calc(100%/6) 100%;border:.15cqw solid color-mix(in srgb,var(--h) 40%,transparent)}
.sheet-sys .pub-tag{left:6cqw;bottom:2.2cqw;font-size:1.5cqw;flex-direction:row;gap:1cqw}

.spread .hl{list-style:none;margin:2.2cqw 0 0;padding:0;font-size:.95cqw;line-height:1.35;max-width:32cqw}
.spread .hl li{display:grid;grid-template-columns:2cqw 1fr;padding:.55cqw 0;border-top:.08cqw solid color-mix(in srgb,currentColor 30%,transparent)}
.spread .hl li::before{content:"";width:.7cqw;height:.7cqw;background:var(--h);margin-top:.35cqw}
.spread .seg{margin-top:1.6cqw}
/* glance spread picture block (concept demo) */
.spread .sp-pic{flex:1 1 0;min-height:0;font-size:1cqw;line-height:1.2;margin:1.8cqw 0 2.2cqw;display:flex;flex-direction:column;gap:.7cqw}
.spread .sp-pic .sp-art{position:relative;flex:1 1 0;min-height:0;overflow:hidden;container-type:size;background:color-mix(in srgb,var(--i) 5%,var(--p))}
.spread .sp-pic .art{position:absolute;inset:0;width:100%;height:100%}
.spread .sp-pic .art-contour{background:var(--h);-webkit-mask:url(/img/art/contour.svg) center 42%/100% auto no-repeat;mask:url(/img/art/contour.svg) center 42%/100% auto no-repeat;opacity:.9}
.spread .sp-pic.pic-contour .sp-art::after{content:"";position:absolute;left:16%;top:22%;width:46cqh;height:46cqh;border-radius:50%;background:var(--a);mix-blend-mode:multiply}
.spread .sp-pic .art-numeral{display:flex;align-items:flex-end;justify-content:flex-end}
.spread .sp-pic .art-numeral span{font-family:var(--f-serif);font-weight:300;font-size:112cqh;line-height:.74;letter-spacing:-.05em;color:var(--h);margin:0 4cqw -7cqh 0}
.spread .sp-pic.pic-numeral .sp-art::before{content:"";position:absolute;left:4cqw;right:38cqw;top:22cqh;border-top:1px solid var(--i);opacity:.5}
.spread .sp-pic figcaption{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:.62cqw;letter-spacing:.06em;text-transform:uppercase;opacity:.6}
.spread .sp-pic .xf{position:absolute;inset:0;pointer-events:none}
.pub.f-serif.spread .sp-h{font-family:var(--f-serif);font-weight:400;letter-spacing:-.02em}
.pub.f-serif.spread .sp-k{font-family:var(--f-serif);font-weight:500;letter-spacing:0}
/* concept demo: the typeface toggle carries through every output */
.pub.f-serif.spread .sp-h{font-size:4.6cqw;line-height:.98}
[data-o] .pub.f-serif .chart text{font-family:var(--f-serif)}
[data-o] .pub.f-serif .cv-title,[data-o] .pub.f-serif .sl-h,[data-o] .pub.f-serif .sl-grid b,[data-o] .pub.f-serif .rl-h{font-family:var(--f-serif);font-weight:400;letter-spacing:-.02em}
