/* Phase 2 (c): map, sourcing story, stat icons */
/* ---- network map (option 1: zoom out) ---- */
.netmap{margin-block:clamp(26px,4vw,44px) 8px}
.netmap-stage{position:relative;inline-size:100%;aspect-ratio:1000/386;direction:ltr;overflow:hidden;border-radius:16px;background:radial-gradient(120% 140% at 60% 40%,#e3e9e6 0%,#d6dfdc 70%,#cfd9d6 100%);box-shadow:inset 0 0 0 1px rgba(29,25,21,.06)}
.nm-svg{position:absolute;inset:0;inline-size:100%;block-size:100%;overflow:visible}
.nm-cam{transform:scale(var(--s)) translate(var(--x),var(--y));transform-origin:0 0;transition:transform 1.9s cubic-bezier(.65,0,.2,1)}
.netmap.b .nm-cam{transform:none}
.nm-wimg{opacity:0;transition:opacity 1.1s .5s}.netmap.b .nm-wimg{opacity:1}
.nm-rimg{transition:opacity 1s .2s}.netmap.b .nm-rimg{opacity:0}
.nm-ln,.nm-sp,.nm-fl{fill:none;stroke-linecap:round}
.nm-exp .nm-ln{stroke:var(--saffron,#c2410c);stroke-width:1.6;stroke-dasharray:1 1;stroke-dashoffset:1}
.nm-imp .nm-ln{stroke:#4d6b3c;stroke-width:1.3;stroke-dasharray:1 1;stroke-dashoffset:1;opacity:.45}
.nm-imp .nm-fl{stroke:#4d6b3c;stroke-width:1.5;stroke-dasharray:2 6;opacity:0}
.nm-sp{stroke:var(--saffron,#c2410c);stroke-dasharray:1 1;stroke-dashoffset:1;opacity:.9}
.nm-web path{fill:none;stroke:var(--ink,#1d1915);stroke-width:1.3;stroke-dasharray:3 4;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .8s;animation:nmFlow 1.3s linear infinite}
@keyframes nmFlow{to{stroke-dashoffset:-14}}
.nm-cty circle{fill:#f6f3ec;stroke:var(--saffron,#c2410c);opacity:0}
.nm-src circle{fill:#4d6b3c;opacity:0}
.nm-node{fill:var(--card,#f6f3ec);stroke:var(--saffron,#c2410c);stroke-width:1.6;opacity:0}
.nm-rip{fill:none;stroke:var(--saffron,#c2410c);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
.nm-core{fill:var(--saffron,#c2410c)}
.nm-ring{fill:var(--saffron,#c2410c);opacity:.18;transform-box:fill-box;transform-origin:center;animation:nmRing 2.6s ease-out infinite}
@keyframes nmRing{0%{transform:scale(.5);opacity:.35}70%,100%{transform:scale(2.2);opacity:0}}
.nm-pin{opacity:0;transform-box:fill-box;transform-origin:center}
.nm-wpins{opacity:0;transition:opacity .6s}.netmap.b .nm-wpins{opacity:1;transition-delay:1.6s}
.netmap.b .nm-pins,.netmap.b .nm-spk,.netmap.b .nm-cty{opacity:.0;transition:opacity .8s .9s}
.pk{opacity:0}.pk-w{fill:var(--ink,#1d1915)}.pk-s,.pk-e{fill:var(--saffron,#c2410c)}.pk-i{fill:#4d6b3c}
.netmap.a .pk-w,.netmap.a .pk-s{opacity:1;transition:opacity .4s}
.netmap.b .pk-w,.netmap.b .pk-s{opacity:0}
.netmap.c .pk-i{opacity:1;transition:opacity .4s}.netmap.d .pk-e{opacity:1;transition:opacity .4s}
/* labels */
.nm-labs{position:absolute;inset:0;pointer-events:none}
.nm-lab{position:absolute;white-space:nowrap;line-height:1;padding:3px 6px;border-radius:5px;background:rgba(246,243,236,.88);box-shadow:0 1px 2px rgba(29,25,21,.08);--g:11px;--k:8px;transform:translate(var(--tx,0),var(--ty,0));opacity:0}
.nm-loc{font-size:.8rem;font-weight:600;color:var(--ink,#1d1915)}
.nm-mkt{font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft,#4c443c)}
.nm-lab[data-pos="r"]{--tx:var(--g);--ty:-50%}
.nm-lab[data-pos="l"]{--tx:calc(-100% - var(--g));--ty:-50%}
.nm-lab[data-pos="t"]{--tx:-50%;--ty:calc(-100% - var(--g))}
.nm-lab[data-pos="b"]{--tx:-50%;--ty:var(--g)}
.nm-lab[data-pos="tr"]{--tx:var(--k);--ty:calc(-100% - var(--k))}
.nm-lab[data-pos="tl"]{--tx:calc(-100% - var(--k));--ty:calc(-100% - var(--k))}
.nm-lab[data-pos="br"]{--tx:var(--k);--ty:var(--k)}
.nm-lab[data-pos="bl"]{--tx:calc(-100% - var(--k));--ty:var(--k)}
.nm-wset .nm-mkt.imp{color:#4d6b3c}
.nm-replay{position:absolute;inset-block-start:12px;inset-inline-end:12px;inline-size:34px;block-size:34px;display:grid;place-items:center;font:600 1rem/1 var(--f-body,Inter,sans-serif);color:var(--ink,#1d1915);background:rgba(246,243,236,.9);border:1px solid rgba(29,25,21,.15);border-radius:50%;padding:0;cursor:pointer;opacity:0;transition:opacity .4s}
.netmap.done .nm-replay{opacity:1}
.nm-key{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:16px 0 0;font-size:.76rem;color:var(--ink-soft,#4c443c)}
.nm-key span{display:inline-block;inline-size:26px;block-size:0;border-block-start:2px solid;margin-inline-end:-10px;vertical-align:middle}
.nm-key .k-in{border-color:#4d6b3c;border-block-start-style:dashed}.nm-key .k-out{border-color:var(--saffron,#c2410c)}.nm-key .k-web{border-color:var(--ink,#1d1915);border-block-start-style:dotted;opacity:.6}
.netmap-legend{list-style:none;padding:18px 0 0;margin:22px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;border-block-start:1px solid var(--line,#d9d2c4)}
.netmap-legend li{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:3px;align-items:center;opacity:.25;transition:opacity .4s}
.netmap-legend b{font-family:var(--f-display,Georgia,serif);font-weight:400;font-size:1.15rem}
.netmap-legend span:last-child{grid-column:2;font-size:.78rem;color:var(--ink-soft,#4c443c)}
.nl-dot{inline-size:9px;block-size:9px;border-radius:50%;background:var(--saffron,#c2410c);box-shadow:0 0 0 4px rgba(194,65,12,.15)}
#where .netmap-legend{display:none}
/* final state without JS */
html:not(.p2-js) .nm-cam{transform:none}html:not(.p2-js) .nm-wimg{opacity:1}html:not(.p2-js) .nm-rimg,html:not(.p2-js) .nm-rset,html:not(.p2-js) .nm-pins,html:not(.p2-js) .nm-spk{opacity:0}
html:not(.p2-js) .nm-lab.wl,html:not(.p2-js) .nm-wpins,html:not(.p2-js) .nm-node,html:not(.p2-js) .nm-src circle,html:not(.p2-js) .netmap-legend li{opacity:1}
html:not(.p2-js) .nm-ln{stroke-dashoffset:0}
/* timeline: a = region, b = zoom out, c = sourcing, d = exports */
.netmap.a .nm-pin{animation:nmPop .5s cubic-bezier(.2,.8,.2,1.35) forwards;animation-delay:calc(var(--d)*.35s)}
.netmap.a .nm-rset .nm-loc{animation:nmFade .45s forwards;animation-delay:calc(var(--d)*.35s + .15s)}
.netmap.a .netmap-legend li{animation:nmFade .45s forwards;animation-delay:calc(var(--d)*.35s)}
.netmap.a .nm-web path{opacity:.55;transition-delay:1.6s}
.netmap.a .nm-sp{animation:nmDraw .8s cubic-bezier(.5,0,.2,1) forwards;animation-delay:calc(var(--d)*.08s + 2.2s)}
.netmap.a .nm-cty circle{animation:nmFade .35s forwards;animation-delay:calc(var(--d)*.08s + 2.9s)}
.netmap.a .nm-rset .nm-mkt{animation:nmFade .45s forwards;animation-delay:calc(var(--d)*.1s + 3.2s)}
.netmap.b .nm-rset{opacity:0;transition:opacity .5s}
.netmap.b .nm-web path{opacity:.35}
.netmap.b .nm-wset .nm-loc{animation:nmFade .5s forwards;animation-delay:1.7s}
.netmap.c .nm-imp .nm-ln{animation:nmDraw 1.1s cubic-bezier(.5,0,.2,1) forwards;animation-delay:calc(var(--d)*.15s)}
.netmap.c .nm-imp .nm-fl{animation:nmFade .6s forwards,nmIn 1.4s linear infinite;animation-delay:calc(var(--d)*.15s + 1s),0s}
@keyframes nmIn{to{stroke-dashoffset:-8}}
.netmap.c .nm-src circle,.netmap.c .nm-wset .imp{animation:nmFade .4s forwards;animation-delay:calc(var(--d)*.15s + .1s)}
.netmap.d .nm-exp .nm-ln{animation:nmDraw 1.1s cubic-bezier(.5,0,.2,1) forwards;animation-delay:calc(var(--d)*.18s)}
.netmap.d .nm-node,.netmap.d .nm-wset .nm-mkt:not(.imp){animation:nmFade .4s forwards;animation-delay:calc(var(--d)*.18s + 1s)}
.netmap.d .nm-rip{animation:nmRip 2.4s ease-out infinite;animation-delay:calc(var(--d)*.18s + 1.4s)}
@keyframes nmRip{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(3.4)}}
@keyframes nmPop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
@keyframes nmFade{to{opacity:1}}
@keyframes nmDraw{to{stroke-dashoffset:0}}
.netmap-legend li:hover{opacity:1}
@media (max-width:700px){
 .netmap-stage{border-radius:12px}
 .nm-lab{padding:2px 4px;--g:8px;--k:6px}.nm-loc{font-size:.62rem}.nm-mkt{font-size:.47rem;letter-spacing:.08em}
 .nm-lab[data-pm="none"]{display:none}
 .nm-lab[data-pm="r"]{--tx:var(--g);--ty:-50%}.nm-lab[data-pm="l"]{--tx:calc(-100% - var(--g));--ty:-50%}
 .nm-lab[data-pm="t"]{--tx:-50%;--ty:calc(-100% - var(--g))}.nm-lab[data-pm="b"]{--tx:-50%;--ty:var(--g)}
 .nm-lab[data-pm="tr"]{--tx:var(--k);--ty:calc(-100% - var(--k))}.nm-lab[data-pm="tl"]{--tx:calc(-100% - var(--k));--ty:calc(-100% - var(--k))}
 .nm-lab[data-pm="br"]{--tx:var(--k);--ty:var(--k)}.nm-lab[data-pm="bl"]{--tx:calc(-100% - var(--k));--ty:var(--k)}
 .netmap-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nm-replay{inline-size:28px;block-size:28px;font-size:.85rem;inset-block-start:8px;inset-inline-end:8px}
}

/* ---- sourcing-to-dispatch story ---- */
.story-ico{display:block;background:var(--saffron,#c2410c);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.story{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,90px);margin-block-start:clamp(26px,4vw,48px)}
.story-visual{position:sticky;inset-block-start:96px;align-self:start;block-size:calc(100vh - 140px);max-block-size:560px;display:flex;flex-direction:column;justify-content:center;gap:22px}
.story-frame{position:relative;flex:1;border:1px solid var(--line,#d9d2c4);border-radius:16px;background:var(--card,#f6f3ec);overflow:hidden}
.story-frame::before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 50% 45%,rgba(194,65,12,.10),transparent 55%)}
.story-panel{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;opacity:0;transform:translateY(18px) scale(.98);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.story-panel.on{opacity:1;transform:none}
.story-panel .story-ico{inline-size:clamp(76px,9vw,116px);block-size:clamp(76px,9vw,116px)}
.story-num{font-family:var(--f-display,Georgia,serif);font-size:clamp(3rem,6vw,4.6rem);line-height:1;color:var(--ink,#1d1915)}
.story-name{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft,#4c443c)}
.story-bar{block-size:3px;background:var(--line,#d9d2c4);border-radius:3px;overflow:hidden}
.story-bar i{display:block;block-size:100%;inline-size:calc(var(--p,0)*100%);background:var(--saffron,#c2410c);transition:inline-size .15s linear}
.story-count{margin:0;font-size:.8rem;letter-spacing:.12em;color:var(--ink-soft,#4c443c)}
.story-count b{color:var(--ink,#1d1915);font-weight:600}
.story-steps{list-style:none;margin:0;padding:0}
.story-step{min-block-size:62vh;display:flex;flex-direction:column;justify-content:center;padding-block:28px;border-block-start:1px solid var(--line,#d9d2c4);transition:opacity .45s}
.story-step:first-child{border-block-start:0}
.p2-js .story-step{opacity:.32}
.p2-js .story-step.on{opacity:1}
.story-step .story-ico.sm{display:none}
.story-label{margin:0 0 10px;font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--saffron,#c2410c)}
.story-step h3{margin:0 0 12px;font-family:var(--f-display,Georgia,serif);font-weight:400;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15}
.story-step p:last-child{margin:0;font-size:1.02rem;line-height:1.7;color:var(--ink-soft,#4c443c);max-inline-size:34em}
@media (max-width:900px){
 .story{grid-template-columns:1fr;gap:0}
 .story-visual{display:none}
 .story-steps{position:relative;padding-inline-start:52px}
 .story-steps::before{content:"";position:absolute;inset-block:8px;inset-inline-start:17px;inline-size:2px;background:var(--line,#d9d2c4)}
 .story-steps::after{content:"";position:absolute;inset-block-start:8px;inset-inline-start:17px;inline-size:2px;block-size:calc(var(--p,0)*(100% - 16px));background:var(--saffron,#c2410c)}
 .story-step{min-block-size:0;padding-block:22px;border:0;position:relative}
 .story-step .story-ico.sm{display:block;position:absolute;inset-inline-start:-52px;inset-block-start:20px;inline-size:36px;block-size:36px;border-radius:50%;background:var(--cream,#f0ece3);-webkit-mask:none;mask:none;border:1px solid var(--line,#d9d2c4)}
 .story-step .story-ico.sm::after{content:"";position:absolute;inset:8px;background:var(--saffron,#c2410c);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
 .p2-js .story-step{opacity:.45}
}
/* ---- stat icons ---- */
.stat-label::before{display:block;inline-size:26px;block-size:26px;margin-block-end:10px;background:var(--saffron,#c2410c);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.ic-leaf{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 6-14 14-14 0 8-6 14-14 14z M5 19l8-8'/%3E%3C/svg%3E")}
.ic-factory{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18 M4 20v-9l5 3v-3l5 3V5h3l1.5 6v9'/%3E%3C/svg%3E")}
.ic-box{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7.5L12 3l9 4.5v9L12 21l-9-4.5z M3 7.5L12 12l9-4.5 M12 12v9'/%3E%3C/svg%3E")}
.ic-shield{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3L5 6v5c0 4.5 3 8.5 7 10 4-1.5 7-5.5 7-10V6z M9 12l2 2 4-4'/%3E%3C/svg%3E")}
.ic-sieve{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h18l-2 6a3 3 0 0 1-3 2H8a3 3 0 0 1-3-2z M8 12.5h.01 M11 13.5h.01 M14 12.5h.01 M16.5 13.5h.01 M12 17v4 M9 5l1.5 2 M15 5l-1.5 2'/%3E%3C/svg%3E")}
.ic-scan{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7V4h3 M18 4h3v3 M21 17v3h-3 M6 20H3v-3 M4.5 12s3-5 7.5-5 7.5 5 7.5 5-3 5-7.5 5-7.5-5-7.5-5z M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z'/%3E%3C/svg%3E")}
.ic-flask{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6 M10 3v6L4.5 18.5A1.7 1.7 0 0 0 6 21h12a1.7 1.7 0 0 0 1.5-2.5L14 9V3 M7 15h10'/%3E%3C/svg%3E")}
.ic-ship{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 15h18l-2.5 4.5h-13z M6 15v-4h4v4 M10 15V9h4v6 M14 15v-3h4v3 M12 9V5'/%3E%3C/svg%3E")}
.ic-pin{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.5 7-12a7 7 0 0 0-14 0c0 5.5 7 12 7 12z M12 11.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z'/%3E%3C/svg%3E")}
.ic-sprout{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21v-9 M12 12c0-4-3-6-7-6 0 4 3 6 7 6z M12 10c0-3.5 2.5-5.5 6-5.5 0 3.5-2.5 5.5-6 5.5z'/%3E%3C/svg%3E")}
.ic-people{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6 M16 5.5a3 3 0 0 1 0 5.5 M18 14.5c2 .7 3 2.8 3 5.5'/%3E%3C/svg%3E")}
.ic-warehouse{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V9l9-5 9 5v12 M7 21v-8h10v8 M7 17h10'/%3E%3C/svg%3E")}
.ic-grid{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h7v7H4z M13 4h7v7h-7z M4 13h7v7H4z M13 13h7v7h-7z'/%3E%3C/svg%3E")}
.ic-tag{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12V4h8l10 10-8 8z M7.5 8.5h.01'/%3E%3C/svg%3E")}
html:not([data-app-page="capabilities"]) .stats .stat:nth-child(1) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21v-9 M12 12c0-4-3-6-7-6 0 4 3 6 7 6z M12 10c0-3.5 2.5-5.5 6-5.5 0 3.5-2.5 5.5-6 5.5z'/%3E%3C/svg%3E")}
html:not([data-app-page="capabilities"]) .stats .stat:nth-child(2) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18 M4 20v-9l5 3v-3l5 3V5h3l1.5 6v9'/%3E%3C/svg%3E")}
html:not([data-app-page="capabilities"]) .stats .stat:nth-child(3) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.5 7-12a7 7 0 0 0-14 0c0 5.5 7 12 7 12z M12 11.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z'/%3E%3C/svg%3E")}
html:not([data-app-page="capabilities"]) .stats .stat:nth-child(4) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12V4h8l10 10-8 8z M7.5 8.5h.01'/%3E%3C/svg%3E")}
html[data-app-page="capabilities"] .stats .stat:nth-child(1) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h7v7H4z M13 4h7v7h-7z M4 13h7v7H4z M13 13h7v7h-7z'/%3E%3C/svg%3E")}
html[data-app-page="capabilities"] .stats .stat:nth-child(2) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7.5L12 3l9 4.5v9L12 21l-9-4.5z M3 7.5L12 12l9-4.5 M12 12v9'/%3E%3C/svg%3E")}
html[data-app-page="capabilities"] .stats .stat:nth-child(3) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18 M4 20v-9l5 3v-3l5 3V5h3l1.5 6v9'/%3E%3C/svg%3E")}
html[data-app-page="capabilities"] .stats .stat:nth-child(4) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V9l9-5 9 5v12 M7 21v-8h10v8 M7 17h10'/%3E%3C/svg%3E")}
html[data-app-page="capabilities"] .stats .stat:nth-child(5) .stat-label::before{content:"";--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6 M16 5.5a3 3 0 0 1 0 5.5 M18 14.5c2 .7 3 2.8 3 5.5'/%3E%3C/svg%3E")}
.netmap.nm-reset *{transition:none!important;animation:none!important}

.nm-labs{transition:opacity .9s ease}
.netmap.quiet .nm-labs{opacity:0}
.netmap.quiet .nm-replay{opacity:.55}.netmap.quiet .nm-replay:hover{opacity:1}
/* footer copyright */
.foot-copy{margin:30px 0 0;padding-block-start:18px;border-block-start:1px solid color-mix(in srgb,var(--cream,#f0ece3) 14%,transparent);font-size:.74rem;letter-spacing:.02em;color:color-mix(in srgb,var(--cream,#f0ece3) 58%,transparent)}
/* legal pages + notes */
.legal-date{font-size:.8rem;color:var(--ink-soft,#4c443c);margin:-6px 0 26px}
article.legal .content h2{font-size:clamp(1.15rem,2vw,1.4rem)!important;margin-top:34px}
.todo{background:#fde68a;color:#7c2d12;padding:1px 4px;border-radius:3px}
.post-note{margin:40px 0 0;padding:14px 18px;border-inline-start:3px solid var(--saffron,#c2410c);background:var(--card,#f6f3ec);border-radius:0 8px 8px 0;font-size:.86rem;line-height:1.6;color:var(--ink-soft,#4c443c)}
.img-note{margin:16px 0 0;font-size:.74rem;color:var(--ink-soft,#4c443c);opacity:.85}
.view-all-wrap+.img-note,.product-grid+.img-note{text-align:center}
.foot-copy a{color:inherit;text-decoration:underline;text-underline-offset:3px;margin-inline-start:4px}
.foot-copy .sep{margin-inline:8px;opacity:.5}
.consent a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* story with photos */
.story-visual.photo .story-frame{background:#191512;border:0;box-shadow:0 18px 40px rgba(29,25,21,.18)}
.story-visual.photo .story-frame::before{display:none}
.story-visual.photo .story-panel{display:block;transform:none;transition:opacity .7s ease}
.story-img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;transform:scale(1.1);transition:transform 7s cubic-bezier(.2,.6,.2,1)}
.story-panel.on .story-img{transform:scale(1)}
.story-cap{position:absolute;inset-inline:0;inset-block-end:0;display:flex;align-items:flex-end;gap:14px;padding:70px 26px 24px;background:linear-gradient(to top,rgba(25,21,18,.85),rgba(25,21,18,0));color:#f0ece3;transform:translateY(12px);opacity:0;transition:transform .6s .25s cubic-bezier(.2,.7,.2,1),opacity .6s .25s}
.story-panel.on .story-cap{transform:none;opacity:1}
.story-visual.photo .story-cap .story-ico{inline-size:34px;block-size:34px;background:#f0ece3;margin-block-end:8px}
.story-visual.photo .story-cap .story-num{color:#f0ece3;font-size:clamp(2.6rem,5vw,3.8rem)}
.story-visual.photo .story-cap .story-name{color:rgba(240,236,227,.85);margin-block-end:10px}
.story-thumb{display:none}
@media (max-width:900px){.story-thumb{display:block;inline-size:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;margin:0 0 14px}}
/* non-Latin scripts: no letter-spacing (keeps Arabic joined, Indic matras intact) */
.lang-ar .nm-mkt,.lang-hi .nm-mkt,.lang-pa .nm-mkt,.lang-ar .story-label,.lang-hi .story-label,.lang-pa .story-label,.lang-ar .story-name,.lang-hi .story-name,.lang-pa .story-name{letter-spacing:0}
.lang-ar .nm-lab,.lang-ar .story-cap{font-family:inherit}
/* flip cards (About: Where we work + Aplus Group) */
.flip-grid{display:grid;gap:16px;margin-block-start:clamp(24px,3vw,36px)}
.flip-grid.f4{grid-template-columns:repeat(4,minmax(0,1fr))}
.flip-grid.f5{grid-template-columns:repeat(5,minmax(0,1fr))}
.flip{perspective:1400px;outline:none;cursor:pointer}
.flip-in{display:grid;block-size:100%;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.7,.2,1)}
.flip:hover .flip-in,.flip:focus-visible .flip-in,.flip.on .flip-in{transform:rotateY(180deg)}
.flip-f,.flip-b{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:14px;padding:22px 20px;display:flex;flex-direction:column;min-block-size:230px}
.flip-f{background:var(--card,#f6f3ec);border:1px solid var(--line,#d9d2c4);position:relative;overflow:hidden}
.flip-f::after{content:"";position:absolute;inset-inline:20px;inset-block-end:0;block-size:3px;background:var(--saffron,#c2410c);transform:scaleX(.18);transform-origin:left;transition:transform .5s}
.flip:hover .flip-f::after{transform:scaleX(1)}
.flip-f .channels{margin:0 0 auto;font-size:.66rem;letter-spacing:.14em;line-height:1.5}
.flip-f h3{margin:18px 0 0;font-family:var(--f-display,Georgia,serif);font-weight:400;font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.2}
.flip-hint{position:absolute;inset-block-start:16px;inset-inline-end:16px;inline-size:26px;block-size:26px;border-radius:50%;border:1px solid var(--line,#d9d2c4);display:grid;place-items:center;font-size:.8rem;color:var(--saffron,#c2410c)}
.flip-b{transform:rotateY(180deg);background:var(--hero,#191512);color:color-mix(in srgb,var(--cream,#f0ece3) 88%,transparent);border:1px solid var(--hero,#191512);justify-content:center;gap:10px}
.flip-b p{margin:0;font-size:.84rem;line-height:1.6}
.flip-b .place-addr{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--saffron,#e2763f);margin-block-start:6px}
.flip-b h4{margin:0 0 2px;font-family:var(--f-display,Georgia,serif);font-weight:400;font-size:1.05rem;color:var(--cream,#f0ece3)}
.lang-ar .flip-b .place-addr,.lang-hi .flip-b .place-addr,.lang-pa .flip-b .place-addr,.lang-ar .flip-f .channels,.lang-hi .flip-f .channels,.lang-pa .flip-f .channels{letter-spacing:0}
@media (max-width:1100px){.flip-grid.f5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.flip-grid.f4,.flip-grid.f5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.flip-grid.f4,.flip-grid.f5{grid-template-columns:1fr}.flip-f,.flip-b{min-block-size:190px}}
.flip-f .channels{padding-inline-end:34px}
/* ===== Phase 3 ===== */
/* --- brand colour worlds --- */
:root{--b-aplus:#7d1a24;--b-aplus-t:#ecdcd8;--b-aplus-d:#3a0c12;--b-nay:#d6336c;--b-nay-t:#fde4ef;--b-nay-d:#6b1238;--b-hh:#2e6b2f;--b-hh-t:#e4efd9;--b-hh-d:#1f3f22}
#brands{transition:background-color .9s ease;background-color:var(--bw,transparent)}
#brands .brand{transition:opacity .6s}
#brands.bw-on .brand:not(.bw-cur){opacity:.55}
#brands .brand.bw-cur .brand-name{color:var(--bwa)}
#brands .brand .brand-media{transition:transform .9s cubic-bezier(.2,.7,.2,1),box-shadow .9s}
#brands .brand.bw-cur .brand-media{transform:scale(1.015);box-shadow:0 22px 50px rgba(29,25,21,.18)}
html[data-app-page="brand:aplus"]{--bc:var(--b-aplus);--bt:var(--b-aplus-t);--bd:var(--b-aplus-d)}
html[data-app-page="brand:nuts-about-you"]{--bc:var(--b-nay);--bt:var(--b-nay-t);--bd:var(--b-nay-d)}
html[data-app-page="brand:healthy-house"]{--bc:var(--b-hh);--bt:var(--b-hh-t);--bd:var(--b-hh-d)}
html[data-app-page^="brand:"] .brand-hero{background:radial-gradient(120% 140% at 15% 20%,color-mix(in srgb,var(--bd) 85%,#000 0%) 0%,var(--bd) 55%,color-mix(in srgb,var(--bd) 80%,#000) 100%)!important;box-shadow:inset 0 4px 0 var(--bc)}
html[data-app-page^="brand:"] .marks-sec{background:color-mix(in srgb,var(--bt) 70%,var(--cream,#f0ece3))}
html[data-app-page^="brand:"] main>.sec:not(.sec-dark):not(.marks-sec):nth-of-type(odd){background:color-mix(in srgb,var(--bt) 45%,var(--cream,#f0ece3))}
html[data-app-page^="brand:"] .eyebrow,html[data-app-page^="brand:"] .channels,html[data-app-page^="brand:"] .marks .eyebrow{color:var(--bc)}
html[data-app-page^="brand:"] .sec-dark{background:var(--bd)!important}
html[data-app-page^="brand:"] .btn-dark{background:var(--bc);border-color:var(--bc)}
html[data-app-page^="brand:"] .prod:hover{box-shadow:0 14px 34px color-mix(in srgb,var(--bc) 22%,transparent)}
/* --- heritage timeline --- */
.tl-sec{overflow:clip}
.tl{position:relative;margin-block-start:clamp(18px,3vw,30px)}
.tl-pin{position:relative}
.tl-track{display:flex;gap:28px;padding-block:8px 26px;position:relative;will-change:transform}
.tl-track::before{content:"";position:absolute;inset-inline:0;top:calc(var(--imgh,210px) + 22px);block-size:1px;background:var(--line,#d9d2c4)}
.tl-item{flex:0 0 clamp(250px,24vw,330px);position:relative;opacity:.45;transition:opacity .5s}
.tl-item.on{opacity:1}
.tl-img{margin:0;block-size:var(--imgh,210px);border-radius:14px;overflow:hidden;background:var(--card,#f6f3ec)}
.tl-img img{inline-size:100%;block-size:100%;object-fit:cover;filter:grayscale(1) sepia(.15);transform:scale(1.04);transition:filter .8s,transform 1.2s cubic-bezier(.2,.7,.2,1)}
.tl-item.on .tl-img img{filter:none;transform:none}
.tl-dot{position:relative;margin-block:14px 12px;inline-size:16px;block-size:16px;border-radius:50%;background:var(--cream,#f0ece3);border:2px solid var(--line,#d9d2c4);transition:background .4s,border-color .4s,box-shadow .4s}
.tl-item.on .tl-dot{background:var(--saffron,#c2410c);border-color:var(--saffron,#c2410c);box-shadow:0 0 0 6px rgba(194,65,12,.15)}
.tl-year{margin:0 0 6px;font-family:var(--f-display,Georgia,serif);font-size:clamp(2.2rem,3.6vw,3.2rem);line-height:1;color:var(--ink,#1d1915);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tl-today .tl-year{color:var(--saffron,#c2410c)}
.tl-nodate .tl-year{color:var(--line,#d9d2c4)}
.tl-need{display:none;font-family:var(--f-body,Inter,sans-serif);font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:#fde68a;color:#7c2d12;border-radius:99px;padding:4px 9px}
html:has(meta[name="robots"][content^="noindex"]) .tl-need{display:inline-block}
.tl-item h3{margin:0 0 8px;font-family:var(--f-display,Georgia,serif);font-weight:400;font-size:1.3rem;line-height:1.2}
.tl-body{margin:0;font-size:.92rem;line-height:1.6;color:var(--ink-soft,#4c443c)}
.tl-bar{block-size:3px;background:var(--line,#d9d2c4);border-radius:3px;overflow:hidden;max-inline-size:420px}
.tl-bar i{display:block;block-size:100%;inline-size:calc(var(--p,0)*100%);background:var(--saffron,#c2410c)}
/* pinned horizontal scroll (desktop, JS adds .tl-pinned) */
.tl.tl-pinned .tl-pin{position:sticky;top:90px;block-size:calc(100vh - 110px);display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.tl.tl-pinned .tl-track{transform:translateX(var(--tx,0px))}
@media (max-width:900px){
 .tl-track{flex-direction:column;gap:30px;padding-inline-start:28px;transform:none!important}
 .tl-track::before{inset-block:0;inset-inline-start:7px;inset-inline-end:auto;top:0;block-size:auto;inline-size:2px}
 .tl-item{flex:none;opacity:1}
 .tl-dot{position:absolute;inset-inline-start:-28px;top:calc(var(--imgh,180px) + 20px);margin:0}
 .tl-img{--imgh:180px}
 .tl-bar{display:none}
 .tl-img img{filter:none}
}
.tl-ongoing .tl-year{font-size:clamp(1.6rem,2.6vw,2.3rem);color:var(--saffron,#c2410c)}
.tl-logo{display:grid;place-items:center;background:var(--card,#f6f3ec)}
.tl-logo img{object-fit:contain!important;inline-size:72%!important;block-size:62%!important;transform:none!important}
.tl-lg-aplus,.tl-lg-nay,.tl-lg-hh,.tl-lg-foods{background:#efe8da}
.tl-map img{object-fit:cover;object-position:center}
.tl-item:not(.on) .tl-logo img{filter:grayscale(1) opacity(.7)}
